首页 > 解决方案 > ExpressJS 渲染子域的问题

问题描述

我正在写商店,但渲染有问题。

我想要子域 /category 并且它正在工作只是找到像 tis 这样的路由

const CategoryOne = ((req, res) =>{ res.render('shop/category'); }); router.get('/category', CategoryOne);

这很完美,但是当我继续使用子域类别/鞋子时,我想使用参数鞋子在/类别上重定向

const Category = ((req, res) =>{
  const categoryPass = req.params.category;
  res.render('shop/category', {
    category: categoryPass 
  });
});
router.get('/category/:category', Category);

它不起作用,我应该重定向吗?当我这样做时

res.redirect('/category')

然后我没有类别参数

编辑:到目前为止我做了什么:

const CategoryOne = ((req, res) =>{
const passedCategory = req.session.categorypassed;
req.session.categorypassed = undefined;
console.log(passedCategory);
Product.find((err, response) => {
res.render('shop/category', {
  title: 'Test', products: response, category: passedCategory
});
});

});

const Category = ((req, res) =>{
  req.session.categorypassed = req.params.category;
  res.redirect('/category');
});

问题是,当我刷新页面时我没有这个参数,有什么办法可以保存它?

标签: javascripthtmlnode.jsexpressweb-deployment

解决方案


处理此问题的更好方法是为您的资产使用中央公共目录,并使用绝对路径(例如/assets/images/logo.png)而不是相对路径(例如assets/images/logo.png.

您可以在此处阅读有关相对和绝对路径的更多信息


推荐阅读