【问题标题】:How to fix relative paths when router used (ExpressJS)使用路由器时如何修复相对路径(ExpressJS)
【发布时间】:2014-12-25 23:44:32
【问题描述】:

我的布局jade文件中正在扩展的路径如下所示:

link(rel='stylesheet', href='../lib/bootstrap/dist/css/bootstrap.min.css')
link(rel='stylesheet', href='../lib/components-font-awesome/css/font-awesome.min.css')

所以,如果我的链接类似于
www.url.com/admin/,那就没问题了 但是当我打电话时
www.url.com/admin/blog/new 路径当然是错误的。它需要看起来像href='../../lib/...',因为路由看起来像这样:

router.get('/admin/blog/new', isLoggedIn, function (req, res) {
    res.render('admin/blog-new', {title: 'Post Blog Entry'});
})

那么除了绝对路径之外,还有可能解决这个简单的问题吗? (也许我现在是个笨蛋)

【问题讨论】:

    标签: node.js express path pug


    【解决方案1】:

    你可以将你的 lib 文件夹命名为 static,然后你就可以摆脱相对路径了。

    app.use('/vendor',express.static(path.join(__dirname, 'client/vendor')));
    

    所以你可以在我的根目录中看到我有一个 client 文件夹,我将所有下载的库存储在 vendor 文件夹中。所以我将静态路径映射为 /vendor

    现在我们可以将库称为

    <link rel="stylesheet" href="vendor/jquery-ui/themes/smoothness/jquery-ui.min.css">
    

    【讨论】:

      【解决方案2】:

      我发现,通过使用前导 /,您可以引用通过更改路径为我解决问题的基本路径

      link(rel='stylesheet', href='/../lib/bootstrap/dist/css/bootstrap.min.css')
      link(rel='stylesheet', href='/../lib/components-font-awesome/css/font-awesome.min.css')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-20
        • 2013-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多