[英]Relative URLs and trailing slashes
我以前在網上看過這個,我懷疑答案是“你不能”,但由於我還沒有找到一個明確的答案,我認為這里值得問一下。 我發現最接近問題的是尾隨斜線和相對網址的神秘感 (目前已經關閉,但Google有一個純文本緩存版本 )。
由於URL的傳統設計將尾部斜杠解釋為目錄,而沒有尾部斜杠的URL被解釋為文件資源,並且相對URL工作在目錄之外,那么如果當前頁面的路徑為
/lorem/ipsum/dolor
相對路徑
not-dolor
將解決為
/lorem/ipsum/not-dolor
當/lorem/ipsum/dolor
被視為文件資源時,自然有意義, dolor
,坐在目錄中, /lorem/ipsum/
; 典型,直觀的慣例。 但是,由於大量網站現在是動態應用程序而沒有為每個URL映射文件系統,這可能會引起麻煩,因為有時您真的想要相對於路徑工作,就像在當前設計中,有一個尾隨斜杠。
是否有任何合理的方法(“不涉及服務器端處理/變量/其他,或JavaScript”)使用基於當前路徑的相對路徑,而不是當前路徑的“目錄”? 所以not-dolor
可能與/lorem/ipsum/dolor
並且產生
/lorem/ipsum/dolor/not-dolor
我知道沒有與./not-dolor
類似的解決方法,因為.
仍然是(/lorem/)ipsum/
。 沒有重定向到尾部斜杠並確保所有資源都具有對應於目錄和文件性質的URL,或者修改規范(!)。 有什么方法可以解決這個問題嗎?
沒有。
問題與導演/文件映射沒有太大關系(從未預料到映射會如何發生,只允許作為方便的映射,這通常很方便)。
這與簡單的事實更相關,即dolor
與dolor/
並且你希望從相對於dolor/
的引用中提供一個新的URI dolor/
當結合到dolor
一個結尾時。
可能的解決方案是與/lorem/ipsum/dolor/
一起行動。 也就是說,從來沒有談論/lorem/ipsum/dolor
,只關於/lorem/ipsum/dolor/
。 畢竟,由於目錄/文件映射正如您所說,並非唯一的處理方式,因此您的資源名稱不應始終以斜杠結尾。
實際上,這可能更有意義,因為在使用這樣的相對鏈接時,你暗示/lorem/ipsum/dolor/not-dolor
和/lorem/ipsum/dolor
之間存在某種關系。 現在,雖然/lorem/ipsum/dolor/not-dolor
可能與/lorem/ipsum/dolor/
之間沒有多少關系,但是它可能存在於URI中(是的URI是不透明的,但同時它們必須是在某些級別被視為不透明,它們被允許反映關系,這正是相對URI引用有意義的原因)。 因此, /lorem/ipsum/dolor/
更清楚地反映了你的整體URI到資源的映射(如果沒有,你不會想要從dolor到not-dolor)。
現在,這可以歸結為重定向到結尾的斜線,你說你想避免(或更好,但從來沒有導致有人dolor
擺在首位),但它的優點,現在似乎比更容易相對URI的只是方便越好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.