在nodejs express中使用相对URL

时间:2016-10-28 18:25:41

标签: node.js url express routes

我正在使用快递路由,如:

exporting: {
    buttons: {
      contextButton: {
        menuItems: Highcharts.defaultOptions.exporting.buttons.contextButton.menuItems.concat([{
          text: 'custom-text',
          onclick: function() {
             // custom callback
          }
        }])
      }
    }
  },

我正在渲染一个EJS模板文件,其中包含CSS链接和URL 相对于此。
所以你可能会在test.ejs模板中看到这样的东西:

router.get('/test', function(req, res, next) {
    if (user logged in)
        res.render('test');
    else res.redirect('login')

我遇到的问题是此路由处理程序接受类似

的URL

/ test和/ test / - 第二个URL导致我的相对URL形成不正确的绝对URL。 因此,如果我的应用程序中的URL(使用Apache部署到生产转发到myapp时)是:

 <link href = "../stylesheets/bootstrap.min.css" rel = "stylesheet">
 <a href="blee">blee</a>

我希望在

找到CSS
example.com/myapp/test 

处的blee URL
example.com/myapp/stylesheets/bootstrap.min.css

,重定向应该转到

example.com/myapp/blee

只要进入处理程序的URL是/ test

,这就有效

但是,如果它是/ test /,则处理程序接受它但是形成的相对URL都是不正确的。

我的开发环境与我的部署环境不同,因此我无法将完整的URL编码为事物,因为它在/ test之前的路径较长。相对URL只是更有意义。

只要我的应用没有创建它,我就被告知不要担心URL / test /进来。但有时候用户会在位置框中输入一些内容,如果他们输入了这个内容,它会陷入此处理程序并生成一个损坏的页面。

0 个答案:

没有答案