express.js添加不同资产的不同路由

时间:2012-11-24 01:25:27

标签: javascript node.js express

我在正常的public / js /文件夹中有我的javascripts,一切正常用于正常路线,如'/','/ 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 /'。

我没有改变普通快递app.js设置中的任何内容,所以如果需要我会发布它和所有依赖项,但首先我想看看是否有一个共同的解决方案。

2 个答案:

答案 0 :(得分:2)

您的HTML正在使用src

的相对网址
<script src="js/jquery.js"></script>

将其更改为以/开头的绝对网址,您就可以了。

答案 1 :(得分:0)

我想这是因为您的HTML文件使用相对路径加载资源,因此一旦URL中出现第二个正斜杠,路径就会搞砸。所以例如; &#34; / blog&#34; = good,&#34; / blog /&#34; = bad。您需要为资产使用绝对路径(以正斜杠开头的路径,例如&#34; /blog/js/jquery.js" ),或者使用a来动态写入路径模板系统(类似于 &#34; {{ROOTPATH}}博客/ JS /的jquery.js&#34;