快速尝试从错误的文件夹中提取资产

时间:2017-03-09 22:00:53

标签: javascript node.js express ejs

在我的快递项目中,当我使用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...

1 个答案:

答案 0 :(得分:1)

只要有多层路线,即/products/toys

,就会出现这种情况

默认资产提取线:app.use(express.static(path.join(__dirname, 'public')));需要更改为app.use('/toys', express.static(__dirname + '/public'));以反映路线。

Per:Express-js can't GET my static files, why?