express碰到一个很奇怪的问题,不知各位大神有没有遇到过?
发布于 10 年前 作者 moJiXiang 4428 次浏览 最后一次编辑是 8 年前

GET http://localhost:3000/product/css/reset.css 404 (Not Found) sdf:13 GET http://localhost:3000/product/css/bootstrap.min.css 404 (Not Found) sdf:14 GET http://localhost:3000/product/css/bootstrap-responsive.css 404 (Not Found) sdf:15 GET http://localhost:3000/product/css/docs.css 404 (Not Found)

我在模板里面a标签写了<a href="/product/{{_id}}" class="home-title"></a>,对应的路由可以获取到数据,但是加载静态资源的时候为什么会从product开始获取,而不是定义好的public,如果把product/{{_id}}改成productabc/{{_id}}那么就会从productabc获取,很奇怪。不知道为什么,求解!

5 回复

弄弄 staticfile 的设置就好了吧

@alsotang app.use(express.static(__dirname + ‘/public’));就是系统生成的啊,没变。

app.use('/product', express.static(__dirname + '/public'));

或者资源地址改成

http://localhost:3000/css/reset.css

@ravenwang 十分感谢大神,我加了app.use('/product', express.static(_dirname + '/public')),可以了,但是现在app.js文件里面会有两个static配置项: app.use(express.static(_dirname + '/public'))``app.use('/product', express.static(_dirname + '/public'))。 问题是,如果我想再写一个路由是/blog/:id,那么是不是还要再写一个app.use('/blog', express.static(_dirname + '/public'))呢,如果还会有更多的路由还得再写对应数量的资源配置吗?

@moJiXiang 这种情况应该在public下建 product , blog 等文件夹放各自的静态文件,然后直接 app.use(express.static(__dirname + '/public'))

回到顶部