Node.js - Express:奇怪的本地路径

时间:2016-01-04 05:41:07

标签: javascript node.js express

我的本​​地路径如何工作真是太奇怪了。例如,这里是我的层次结构:

  

公开> css> bootstrap.css

     

公开> js> bootstrap.js

     

模板>布局> page.ejs(任何页面的默认模板)

     

模板> index.ejs和其他.ejs模板

所以我的page.ejs是我的样式和脚本链接:

<link rel="stylesheet" href="css/bootstrap.css"/>

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

由于某种原因,它适用于我的index.js。每当我进入网站并查看源代码时,请单击链接,所有找到并且很好。每当我的example.ejs文件发生同样的情况时 - 找不到这些链接,因为它是从源中的/ players /目录调用的。

例如,从&#39; /&#39;调用这些文件。页面看起来像:

GET /css/bootstrap.css 304 3.155 ms - -
GET /js/jquery.js 304 3.748 ms - -
GET /js/bootstrap.js 304 3.714 ms - -

但是来自/ players /的同一模板中对同一文件的调用如下所示:

GET /players/css/bootstrap.css 404 1.436 ms - 38
GET /players/js/jquery.js 404 1.197 ms - 33
GET /players/js/bootstrap.js 404 1.151 ms - 36

显然他们的标签是404,因为找不到它们。所以我的问题是:

  

我如何使用我的所有路径?

我已尝试过这些文件的绝对路径 - 仍未找到。我曾尝试过想某种动态脚本,但我还是不确定它是如何工作的。

由于某种原因,它添加了自己的文件路径,而不是使用模板的路径...呃,我甚至不知道如何解释它,但我认为你明白了。我认为&#34;公众&#34;目录与路由绑定,这就是为什么我不需要将它包含在索引页面请求的文件中,但是其他任何文件呢?

谢谢你,抱歉蹩脚的问题!

1 个答案:

答案 0 :(得分:1)

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

应该是这样的:

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

否则浏览器将包含相对于当前URL的脚本。