我的静态文件在app.js中的任何路径上都能正常工作。但是我的静态文件没有加载到我的/routes/blog.js文件中的任何路由。
Folder structure:
Project
├── app.js
│
│
├── public
└── bootstrap...
└── img...
│
│
├──views
└── index.html
└── 404.html
└── etc..
│
│
├──routes
└── blog.js
这是我的app.js文件
const express = require('express');
const app = express();
const path = require('path');
const blog = require('./routes/blog')
//Couple other requires...
// Middleware
app.use(express.static(path.join(__dirname, 'public')));
app.use('/blog', blog)
// Various get routes...
// Start our server on port 3000
app.listen(3000, () => console.log('Node app listening on port 3000...'));
这是我的/routes/blog.js文件
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.render('blog.html');
});
// Post a blog post
router.route('/post')
.get( (req, res) => {
res.render('post.html');
})
.post( (req, res, next) => {
//STUFF
res.redirect('/blog');
});
module.exports = router;
当我在通过app.js文件的任何页面上查看页面源代码时,我指向htttp:// localhost:3000 / bootstrap / bootstrap.min.css /但是当我查看通过该页面的任何页面的源代码时blog.js文件(例如,如果我去localhost:3000 / blog / post)我指向htttp:// localhost:3000 / blog / bootstrap / bootstrap.min.css /并且静态文件没有加载
答案 0 :(得分:0)
添加到您的routes.js
const DIR = path.join(__dirname, 'routes');
并将get
更改为:
router.get('/', (req, res) => {
res.render(path.join(DIR, 'blog.html'));
});
答案 1 :(得分:0)
我通过改变
来实现它 app.use(express.static(path.join(__dirname, 'public')));
到
app.use(express.static('public'));