[英]Require.js - loading modules relative to the root of the server
假設您有一個大型Web應用程序,並且決定使用require.js加載某些模塊。 為了使事情更容易些,讓我們假設所有模塊都直接存儲在服務器的根目錄下,並且所有模塊都有一個附加前綴(假設前綴由“ n /”組成),在加載模塊時應將其忽略。 在某些嵌套頁面上,例如[host]/path/to/page
您想要定義一些依賴於某些任意模塊(例如n/my/modulename
入口點模塊。 所以你有了:
define('entrypoint',['n / my / modulename'],function(modulename){....});
但是,當您打開頁面時,require.js決定根據相對於當前文檔位置的模塊名稱加載模塊-因此它嘗試獲取[host]/path/to/page/n/my/modulename
。 到目前為止,您認為可憐的require.js只是盲目地工作,並且不知道模塊的瘋狂位置。
那么您如何知道要求重寫路徑? 根據Require.js文檔,我們可以嘗試以類似於以下方式進行配置:
require.config({
baseUrl: '/'
})
那行不通
所以讓我們嘗試一下
require.config({
baseUrl: ''
})
沒有。
require.config({
baseUrl: '/',
paths: {
n: ''
}
})
還是錯
require.config({
baseUrl: '/',
paths: {
n: '/'
}
})
快好了。 現在,您意識到require嘗試從以下路徑加載模塊: http://my/modulename
,您開始懷疑該庫的作者是誰。
經過一番苦苦掙扎,我認為我找到了適合我的用例的唯一合適的解決方案。 您必須使用以下命令配置需求:
require.config({
baseUrl: '/',
paths: {
n: 'FOO/../'
}
})
現在,它終於抓住n/my/modulename
從URL http://[host]/my/modulename
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.