0

我的 javascripts 在普通的 public/js/ 文件夹中,对于像“/”、“/blogs”等普通路由,一切正常

    app.get('/blog', routes.blog)
    app.get('/', routes.index)

所以在将资产加载到客户端快速日志时

    GET /js/jquery.js 304 3ms
    GET /js/bootstrap.js 304 3ms
    GET /js/showdown.js 304 2ms

这里一切都很好,但是当我尝试像这样向 get 请求添加参数时

    app.get('/blog/:title', routes.blog)

我得到这样的资产加载日志

    GET /blog/js/jquery.js 404 2ms
    GET /blog/js/bootstrap.js 404 2ms
    GET /blog/showdown.js 404 2ms

为什么要将 js 的目录更改为“/blog/”。

我没有改变正常的 express app.js 设置,所以如果需要,我会发布它和我的所有依赖项,但首先我想看看是否有一个通用的解决方案。

4

2 回答 2

3

您的 HTML 使用相对 URLsrc

<script src="js/jquery.js"></script>

将其更改为以 a 开头的绝对 URL /,您会没事的。

于 2012-11-24T01:29:04.623 回答
0

我猜这是因为您的 HTML 文件使用相对路径加载资产,因此一旦 URL 中出现第二个正斜杠,路径就会变得混乱。例如,“/blog” = 好,“/blog/” = 坏。您需要为资产使用绝对路径(以正斜杠开头的路径,例如"/blog/js/jquery.js"),或者使用模板系统动态编写路径(类似于
"{{rootpath}}blog /js/jquery.js”)。

于 2012-11-24T01:29:11.377 回答