我在app.js里use了路由
var headbarRouter = require('./routes/headbar');
app.use('/headbar', headbarRouter);
然后再routes/headbar.js里这么写
router.get('/', function(req, res, next) {
console.log("--------")
res.render('headbar', { title: 'Express' });
});
我的理解是只要是headbar开头的请求都会拦截下来,然后render到headbar.ejs
但是在index.ejs 我是这么写的
<script src="/headbar.js"></script>
这不也是一个请求吗?为什么没有拦截走到headbar.ejs里去,而是报错404
app.use('/headbar')
这里的/headbar
的匹配规则是匹配一个请求 path 的第一个部分--前两个/
符号之间的内容. 如果要说前缀匹配, 那一个 path 的前缀是指 此 path 的第一个部分. 对于/headbar.js
来说就是headbar.js
, 与headbar
显然是不匹配的./headbar
可以处理/headbar
或/headbar/*
之类的请求.