Node.js 主路由中的子路由未获取静态文件ExpressJS

Node.js 主路由中的子路由未获取静态文件ExpressJS,node.js,express,routing,Node.js,Express,Routing,我有这个目录结构 在users.js中,我有/login和/register的路由 所以我可以通过localhost:3000/user/login访问它,但是没有加载包含css的静态文件 如何为所有子例程提供静态文件。您的页面位于另一层,因此您必须再添加几个点 之前: 之后:在\uu dirname之后添加一个尾随斜杠,后跟文件夹的相对路径 使用路径规范化文件夹路径中的或。 var express = require('express'); var app = express(); var

我有这个目录结构

在users.js中,我有/login和/register的路由
所以我可以通过localhost:3000/user/login访问它,但是没有加载包含css的静态文件


如何为所有子例程提供静态文件。

您的页面位于另一层,因此您必须再添加几个点

之前:


之后:

\uu dirname
之后添加一个尾随斜杠,后跟文件夹的相对路径

使用路径规范化文件夹路径中的

var express = require('express');
var app = express();
var path = require('path');
app.use(express.static(path.join(__dirname + '/../public')));
有关更多示例,请参阅下面的链接,在路径开头添加/,写入:(ex)(使href或src成为绝对路径,而不是相对路径)

<link rel="stylesheet" href="/stylesheets/style.css">

之前:

<link rel="stylesheet" href="stylesheets/style.css"> 



使用内置的中间件函数express.static并指向存储静态文件的目录。您可以参考例如:app.use(express.static('public'))我已经使用过了。您的静态文件存储在哪里?@ZiyadAhmad in public/foldertry
app.use(express.static(\uu dirname+'/../public))
我使用它来提供静态文件:app.use(express.static(path.join(uu dirname,'public'))@Vishnudev我想说的是,当您在视图(html/pug/ejs)中使用这些资产时,您需要更改路径。我已经编辑了我的答案,让它更清晰。这里的问题是我使用express,并且只有一个主页可以加载CSS。所以当我照你说的做的时候,问题解决了一半,我的/users/login(多级路由)得到了CSS,但是那些拥有/home(单层路由)的人没有你使用的是哪个视图引擎?Express JS是我的视图引擎
<link rel="stylesheet" href="./stylesheets/style.css">