0

ワークライト・アプリケーションで 2 つのカスタム・パッケージを使用しようとしており、それらを使用するために dojoConfig を使用しています。以下は、私が使用しているスクリプトコードです。が_ アプリがパッケージにアクセスしようとしています。js ファイルを作成しました。絶対パスは「StoreLocator_Proj/apps/StoreLocator_App/common/js/controllers/HomeController.js」です。このエラーの原因を教えてください。baseUrl で何か間違っていますか?

    <script>
        dojoConfig = {
         baseUrl: "/js/",
         tlmSiblingOfDojo: false, 
        parseOnLoad: true,
        isDebug:false,
        async:true,
        simulateIpad:true,
        mblAlwaysHideAddressBar: true,
        packages: [
        { name: "controllers" , location: "controllers"},
        { name: "model" , location: "model"}
        ]
        };
        </script>

        <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.9.1/dojo/dojo.js"
           data-dojo-config="async:true"></script>
4

1 に答える 1

1

一般的に Dojo では、パッケージの場所は、ホストされている Dojo の場所に基づいています。この例では、次の場所でモジュールを検索することを意味します。

http://ajax.googleapis.com/ajax/libs/dojo/1.9.1/controllers/
http://ajax.googleapis.com/ajax/libs/dojo/1.9.1/model/

CDN を使用しているためです。カスタム パッケージを使用する場合は、Dojo に関するこの記事locationで提案されているように、プロパティでホスト名を定義する必要があります。


Worklight の場合は少し異なるかもしれませんが、原因はよく似ていると思います。CDN がホストする Dojo を参照しているため、相対パスの一部が「欠落」します。これを修正するには、Dojo のローカル バージョンを使用することをお勧めします。例えば:

<script type="text/javascript">
    dojoConfig = {
        isDebug: false,
        async: true,
        mblAlwaysHideAddressBar: true,
        simulateIpad: true,
        packages : [ {
            name : "controller",
            location : "/js/controller"
        } ]
    }
</script>
<script type="text/javascript" src="dojox/mobile/deviceTheme.js"></script>
<script type="text/javascript" src="dojo/dojo.js"></script>
于 2013-09-20T08:29:46.493 に答える