我正在使用Firefox。
我正在阅读此网页: https://gitbookio.gitbooks.io/javascript/content/
我不小心打字,最后只省略'/':https://gitbookio.gitbooks.io/javascript/content ...它显示没有格式的内容。
我听说HTTP GET要求...centent/
和...centent
有所不同。我所知道的是,请求...centent/
将返回该目录的内容列表或显示该目录的默认值,请求...content
将返回该文件的内容(content
)。我对吗?以上两个链接的原因和方式有何不同? (这种情况看起来像网站的bug)
答案 0 :(得分:2)
在服务器端,没有规则服务器应该使用或不使用尾部斜杠输出。 HTTP没有目录的概念。一切都只是一种资源。
但是在浏览器端如何解释路径存在差异。
在这种情况下,如果没有尾部斜杠,浏览器会认为它正在请求/ javascript中名为“content”的资源。
当它查找告诉浏览器如何设置内容样式的CSS样式表时,它会在/ javascript中查找该文件,因为页面使用了相对链接:
<link rel="stylesheet" href="gitbook/style.css">
<link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-exercises/exercises.css">
在浏览器中,当不使用尾部斜杠时,第一个URL会转换为
https://gitbookio.gitbooks.io/javascript/gitbook/style.css
使用结尾斜杠,它会转换为
https://gitbookio.gitbooks.io/javascript/content/gitbook/style.css
这是不好的做法,或者是一种错误,取决于你的观点。