在requireJS中,有一個屬性叫baseURL,通過設置baseURL,我們可以將需要加載的文件路徑寫成相對于項目的,而不是相對于當前頁面的。
例如:假設我們的項目目錄是/myproject/,里面有兩個頁面,一個是/myproject/one.html,另一個是/myproject/html/other.html,他們都要加載/myproject/js/some.js。如果我們將baseURL設置成/myproject/,則我們在加載該js的時候,這兩個頁面都可以使用相對于項目的路徑./js/some,而不是因為頁面的路徑不同而使用不同的相對路徑。
但是如果不使用requireJS,我們能不能實現類似于baseURL的功能呢?
base標簽
其實,HTML中有一個base標簽,可以產生類似的功能。舉個例子:
base標簽可以給頁面的鏈接加上默認的路徑,或者默認的打開方式。
下面是一個設置默認打開方式的例子:
Chrome的加載正常。
Firefox的加載不正常。
Why?
這個我們并沒有找到很好的解釋,我們的分析是瀏覽器對資源加載進行了優化,導致動態插入base標簽并未生效時,就預先去加載了,結果出錯,然后base標簽生效于是又加載正確的資源。
新聞熱點
疑難解答
圖片精選