【问题标题】:redirect image file get requests express 4.x and handlebars重定向图像文件获取请求 express 4.x 和车把
【发布时间】:2015-06-13 00:58:34
【问题描述】:

我有以下路线:

index.js:

router.get('/', function(req, res, next) {
  var flag = "true";
  var hflag = "true";  
  res.render('index',{title:"My Blog",header: hflag, login: flag, categories:blogEngine.getBlogEntries()});
});

router.get('/article/:id', function(req, res) {
    var entry = blogEngine.getBlogEntry(req.params.id);
    var img = entry.img;
    res.render('article',{title:entry.title, gedjit:entry});
    res.redirect(img);
});

在“/”路径中,我从公共静态文件夹“images”加载图像列表。这工作正常,直到我点击其中一张图像。我想在新页面中显示点击的图像。

这是我的车把文件;

article.hbs:

<h1>{{gedjit.title}}</h1>
<div class="gedjit">
  <img class="img" src="{{gedjit.img}}">
</div>
<br>
<p>Description: {{gedjit.description}}</p>

问题在于,handlebars 发送的是“localhost/article/images/source.jpeg”路由,而不是像 / 路由那样发送到“localhost/images/source.jpeg”的路由。

有没有办法重定向路由并从车把发送到服务器的获取请求中删除文章?

【问题讨论】:

    标签: javascript express handlebars.js


    【解决方案1】:

    我发现了问题所在。

    首先,我的图片源网址前面没有 /; “images/sources.jpeg”而不是 "/images/sources.jpeg"

    其次,我使用两条路由分别发送部分文件和图像文件,这样在从 express 发送错误后我不会收到无法设置的标题。

    /articles/:id 路由现在看起来像这样;

    index.js

    router.get('/article/:id', function(req, res) {
        var entry = blogEngine.getBlogEntry(req.params.id);
        var img = entry.img;
        res.render('article',{title:entry.title, gedjit:entry});
        res.sendFile(img);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多