0

我正在尝试在我的 worklight 应用程序中使用两个自定义包并使用 dojoConfig 来使用它们。下面是我正在使用的脚本代码。问题是我收到错误“加载资源失败:服务器响应状态为 404(未找到)-http: //xxx.xx.xx.xxx :10080/js/controllers/HomeController.js ”当我应用程序正在尝试访问包。我已经创建了 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。如果您想使用自定义包,那么您可能应该按照这篇关于 Dojolocation的文章的建议在您的属性中定义主机名。


对于 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 回答