Node.js 无法通过nodejs中的某些路由访问静态文件

Node.js 无法通过nodejs中的某些路由访问静态文件,node.js,express,Node.js,Express,我的路线在app.js中配置。/users路径按预期工作,除非在呈现express布局时,我无法访问位于./css/style.css的css文件 如果我使用/users路径打开一个页面,我可以看到它正在寻找/users/css/style.css,但是我认为将目录设置为static会覆盖这个 app.use('/', require('./routes/index')); app.use('/users', require('./routes/users')); app.use(express

我的路线在app.js中配置。/users路径按预期工作,除非在呈现express布局时,我无法访问位于./css/style.css的css文件

如果我使用/users路径打开一个页面,我可以看到它正在寻找/users/css/style.css,但是我认为将目录设置为static会覆盖这个

app.use('/', require('./routes/index'));
app.use('/users', require('./routes/users'));
app.use(express.static('css'));

首先,app.use是什么(express.static('css')所做的是从给定路径开始以静态方式提供文件,在本例中是
css

一个好的做法是创建一个名为
public
的文件夹,并使用它静态地为其内部文件提供服务。因此,静态文件夹应如下所示:

-public
  -css
    -style.css
你的app.js应该有
app.use(express.static('./public')

现在,您可能遇到的另一个问题是如何强制转换路径(url)以加载某些文件

假设您请求
http://localhost:PORT/users
,服务的HTML使用
加载样式表

您可以用两种方式编写路径

  • css/style.css
  • /css/style.css
不同之处在于,第一种方法将搜索相对于您已在路径的文件(例如
http://localhost:PORT/users/css/style.css
)。另一种方法将使用您已经在的“域”作为起点(例如
http://localhost:PORT/css/style.css


希望这有助于c:

我找到了答案。将此添加到我的app.js文件中:

// GET /static/style.css etc.
app.use('/users', express.static(path.join(__dirname, 'public')))

如有需要,请在此提供更多信息:

移动
express.static
在您的路线手柄不起作用之前致电