在我的快递项目中,当我使用id呈现产品路径时,资产会尝试从/ products加载,可能是在公共文件夹中(产品不存在),但是当我从略有不同的呈现相同的html时模板/ franchino路由,它从公用文件夹正确拉取资产。
发生了什么,我该如何解决这个问题?
不起作用的路线。
router.get('/product/:slug', function(req, res) {
//route params
var slug = req.params.slug;
var productResp; //scope up api response to pass to render()
console.log(slug);
//api call
Prismic.api("https://prismic.io/api").then(function(api) {
return api.getByUID('product' , slug);
}).then(function(response) {
res.render('product-template', {
product: response,
})
}, function(err) {
console.log("Something went wrong: ", err);
});
});
错误:
GET /product/include/rs-plugin/js/extensions/revolution.extension.migration.min.js 404 0.843 ms - 1226
GET /product/include/rs-plugin/js/extensions/revolution.extension.parallax.min.js 404 1.069 ms - 1226
确实有效的路线:
router.get('/franchino', function(req, res) {
res.render('index-rest');
});
App.js
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(express.static(path.join(__dirname, 'public')));
文件结构:
project
app.js
routes
index.js
views
snippets
snippets
all templates
public
css
includes
js
etc...
答案 0 :(得分:1)
只要有多层路线,即/products/toys
默认资产提取线:app.use(express.static(path.join(__dirname, 'public')));
需要更改为app.use('/toys', express.static(__dirname + '/public'));
以反映路线。