Node.js 无法通过nodejs中的某些路由访问静态文件
我的路线在app.js中配置。/users路径按预期工作,除非在呈现express布局时,我无法访问位于./css/style.css的css文件 如果我使用/users路径打开一个页面,我可以看到它正在寻找/users/css/style.css,但是我认为将目录设置为static会覆盖这个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.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
在您的路线手柄不起作用之前致电