在requireJS中,有一個(gè)屬性叫baseURL,通過設(shè)置baseURL,我們可以將需要加載的文件路徑寫成相對于項(xiàng)目的,而不是相對于當(dāng)前頁面的。
例如:假設(shè)我們的項(xiàng)目目錄是/myproject/,里面有兩個(gè)頁面,一個(gè)是/myproject/one.html,另一個(gè)是/myproject/html/other.html,他們都要加載/myproject/js/some.js。如果我們將baseURL設(shè)置成/myproject/,則我們在加載該js的時(shí)候,這兩個(gè)頁面都可以使用相對于項(xiàng)目的路徑./js/some,而不是因?yàn)轫撁娴穆窂讲煌褂貌煌南鄬β窂健?/p>
但是如果不使用requireJS,我們能不能實(shí)現(xiàn)類似于baseURL的功能呢?
base標(biāo)簽
其實(shí),HTML中有一個(gè)base標(biāo)簽,可以產(chǎn)生類似的功能。舉個(gè)例子:
base標(biāo)簽可以給頁面的鏈接加上默認(rèn)的路徑,或者默認(rèn)的打開方式。
下面是一個(gè)設(shè)置默認(rèn)打開方式的例子:

Chrome的加載正常。

Firefox的加載不正常。
Why?
這個(gè)我們并沒有找到很好的解釋,我們的分析是瀏覽器對資源加載進(jìn)行了優(yōu)化,導(dǎo)致動(dòng)態(tài)插入base標(biāo)簽并未生效時(shí),就預(yù)先去加載了,結(jié)果出錯(cuò),然后base標(biāo)簽生效于是又加載正確的資源。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注