5

Pi エンジン(zend フレームワーク 2 に基づく php アプリケーション エンジン) でアプリケーションを構築しています。

私のアプリケーションでは、javascript ファイル パスはアプリケーション名に依存しますが、アプリケーション名はインストーラーによって選択されます。

たとえば、require.js の URL は次のようになります。

http://my.site.name/asset/module-{module_name}/script/js/require.js

module_name は、アプリケーションに付けられた名前によって変わります。

次のように、バックエンドの「data-main」属性にパスを入れることができることを知っています。

<script data-main="/asset/module-{module_name}/script/" src="/asset/module-{module_name}/script/js/require.js"></script>

しかし、バックエンドに触れる必要がないように、javascript を使用して baseurl を動的に設定する方法があることを知りたいです。

4

4 に答える 4

0

私があなたの質問を正しく理解していれば、js ファイルが見つかるパスを設定できる config オブジェクトで「baseUrl」を使用できます。

require.config({
   baseUrl: "/js/"
});
于 2013-04-10T08:33:04.023 に答える
0

グローバルスコープの汚染を避けるために、あなたの場合のように動的設定コードをすぐに実行する関数にラップすることができます:

require.config((function(){
    var scripts = document.getElementsByTagName("script");
    return {
        baseUrl: '/asset' + scripts[scripts.length-1].src.match(/\/module.*?\//)[0]
    };
})());
于 2013-12-09T20:12:32.483 に答える