当URL是目录时,JS文件不加载

时间:2014-12-17 04:30:18

标签: javascript html http-status-code-404 loading server

我为我的网站写了一个简单的404页面,每次加载时都会告诉你一个笑话。我正在使用StackExhange API完成此操作,并从this thread提取问题。

当我故意用垃圾文件URL触发404页面时,一切都按预期工作。例如,当我转到www.domain.com/garbage时,404页面按预期加载。我的404.shtml有一个script标记,用于加载我编写的404.js脚本,一切都很棒。

但是,当我尝试通过路由到垃圾目录获取404页面作为垃圾文件时,无法找到该脚本。例如,尽管加载了正确的www.domain.com/garbage/页面,404.js仍会加载404.shtml脚本。

以下是我的HTML文件的head部分。

<head>
    <script src="http://code.jquery.com/jquery-latest.min.js"
            type="text/javascript"></script>
    <script src="404.js" type="text/javascript"></script>
</head>

注意:外部jQuery脚本加载两次次,但404.js仅加载第一个请求示例。

这是两个请求的控制台,第一个是垃圾文件请求,第二个是垃圾目录请求。

第一个网址: www.domain.com/garbage
// a long JSON response from the StackExhange API that indicates that the script loaded

第二个网址: www.domain.com/garbage/
[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (404.js, line 0)

问题当我尝试访问无效文件时,当我尝试访问网站中的无效目录时,导致404.js脚本无法加载的原因是什么?

我尝试过什么

  • 过多的Google搜索。
  • 三重检查所有脚本标记是否指向正确的文件

感谢您的时间。如果您想进行更多挖掘,可以在briantracy.xyz/garbagebriantracy.xyz/garbage/处查看实际问题。

1 个答案:

答案 0 :(得分:0)

非常感谢@rfornal建议制作脚本的相对文件路径。在head部分中添加以下行

<script src="404.js" type="text/javascript"></script>
             ^^^^^^

通过将根目录(404.js所在的位置)添加到文件路径中来实现这一目的。

<script src="/404.js" type="text/javascript"></script>
             ^^^^^^^