我为我的网站写了一个简单的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
脚本无法加载的原因是什么?
我尝试过什么
感谢您的时间。如果您想进行更多挖掘,可以在briantracy.xyz/garbage
和briantracy.xyz/garbage/
处查看实际问题。
答案 0 :(得分:0)
非常感谢@rfornal建议制作脚本的相对文件路径。在head
部分中添加以下行
<script src="404.js" type="text/javascript"></script>
^^^^^^
通过将根目录(404.js
所在的位置)添加到文件路径中来实现这一目的。
<script src="/404.js" type="text/javascript"></script>
^^^^^^^