您好我正在尝试使用
路由所有未指定的请求 app.get('*',routes.index);
但问题是,输入无效路由时,没有任何statis内容(js,css文件)加载。但是,在加载定义的路径时,行为完全正常。整个代码块在下面指定
app.use(express.static(path.join(__dirname,'/dist')));
app.use(app.router);
app.use(express.logger('dev'));
// set routes
app.get('/',routes.index);
app.get ('/ecommerce/views/:viewname',routes.views);
app.get('/ecommerce/shoppinglist',routes.shoppinglist);
app.get('*',routes.index);
答案 0 :(得分:0)
我将假设您使用express v3.X
,因为v4.X
已弃用app.router
。
所以,使用node v0.10.18
和express v3.18.1
并假设以下代码:
var path=require('path'),
express = require('express'),
app = express();
app.use(express.static(path.join(__dirname,'/dist')));
app.use(app.router);
app.use(express.logger('dev'));
app.get('/',function(req,res){
res.send('index');
});
app.get ('/ecommerce/views/:viewname',function(req,res){
res.send('views');
});
app.get('/ecommerce/shoppinglist',function(req,res){
res.send('shoppinglist');
});
app.get('*',function(req,res){
res.send('default');
});
app.listen(3000);
并且您的工作目录布局为:
server.js
dist/
foo.txt
并且dist / foo.txt包含一行文字:“这是foo”,
然后以下路线产生预期结果:
Route Result
------------- ------------
/ index
/ecommerce/views/foo views
/ecommerce/shoppinglist shoppinglist
/foo.txt this is foo
/foo default
/bar default
/ecommerce default
/ecommerce/views default
/ecommerce/views/foo/bar default
如果您的结果与这些结果不同,您可以考虑通过npm install express@"~3"
重新加载快递模块,这将为您提供最新的3.X版本,该版本应为v3.18.1。
最后,如果您希望获得有关视图内容的帮助,请提供用于创建视图内容的模块列表,或者无法正确加载资源的模块的来源。