我实际上是在另一个更大的项目中面对这个问题但是,我做了一个简单的问题以便轻松解释
我的项目的树结构如下
demo
|____admin
| |____admin.js
|____node_modules
|
|____static
| |____bootstrap.min.css
| |____headerStyle.min.css
|
|____views
| |____admin
| | |____admin_home.ejs
| |
| |____partials
| |____admin_header.ejs
|
|____index.js
|____package-lock.json
|____package.json
请耐心等待我,我将发布一些重要文件的代码
'index.js'中的代码就是这个
let express = require('express');
let app = express();
let path = require('path');
app.use(express.static(path.join(__dirname, 'static')));
app.set('view engine', 'ejs');
app.get('/',function(req,res)
{
res.render('./admin/admin_home');
});
let admin = require('./admin/admin.js');
app.use('/admin',admin);
app.listen(9000,function(){
console.log('listening to port : 9000');
});
'admin / admin.js'中的代码就是这个
let express = require('express');
let router = express.Router();
router.get('/',function(req,res)
{
res.render('./admin/admin_home');
});
router.get('/adminhome',function(req,res)
{
res.render('./admin/admin_home');
});
module.exports = router;
'views / admin / admin.ejs'中的代码就是这个
<%- include('../partials/admin_header.ejs') %>
<h1>Admin Home</h1>
我遇到快速js静态文件服务的问题。
对于以下网址,网页使用css文件中的所有样式进行渲染
http://localhost:9000
http://localhost:9000/admin
从这些路径提供服务
http://localhost:9000/bootstrap.min.css
和
http://localhost:9000/headerStyle.css
但是对于以下网址,网页使用普通的html呈现,而不提供css syles
http://localhost:9000/admin/adminhome
错误是
Failed to load the resources: the server responded with 404
从这些路径提供css文件
http://localhost:9000/admin/bootstrap.min.css
和
http://localhost:9000/admin/headerStyle.css
和'vies / partials / admin_header.ejs'中的'Link'标签如下
<link rel="stylesheet" type="text/css" href="bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="headerStyle.css">
版本的模块如下
ejs:^2.5.7
express:^4.16.2
path:^0.12.7
我的nodejs版本是 V8.5.0
请帮助我找到解决此问题的方法。谢谢
答案 0 :(得分:2)
href="/bootstrap.min.css"
答案 1 :(得分:0)
您应该在index.js
中添加一行app.set('views', path.join(__dirname, 'views'));