【问题标题】:Requirejs data-main is not setting the baseUrlRequirejs data-main 没有设置 baseUrl
【发布时间】:2012-03-05 15:42:12
【问题描述】:

我为 Requirejs 设置了 data-main,并根据应该为我的所有脚本文件设置 baseUrl 的文档。但这种情况并非如此。 我的文件夹结构是这样的:

Home/Index.html
Content/scripts/main.js
Content/scripts/libs/require/require.js
Content/scripts/libs/jquery/require_jquery.js
Content/scripts/libs/jquery/jquery-1.7.1.mins.js

这是我的 Index.html 中的脚本标签:

<script data-main="/PAWS/Content/scripts/main.js" src="/PAWS/Content/scripts/libs/require/require.js" type="text/javascript"></script>

我假设它会将我的 baseUrl 设置为 /PAWS/Content/scripts/ 但它对我不起作用。在我的 ma​​in.js 中,我这样做:

require(
    { paths: 
        {   jquery: 'libs/jquery',
            knockout: 'libs/knockout'
        }
    },

    ['jquery/require_jquery'],


    function ($) { .... }
);

在我的 require_jquery.js 文件中,我这样做:

define(["libs/jquery/jquery-1.7.1.min.js"], function () {
    return jQuery;
});

但我收到 404 错误提示:

GET http://localhost/PAWS/Home/libs/jquery/jquery-1.7.1.min.js 404 NOT FOUND

你看.. 我的 baseUrl 应该是 /PAWS/Content/scripts... 但它完全忽略了我的 data-main 属性设置,只是将 /PAWS/Home/ 解析为 baseUrl。我做错了什么?

【问题讨论】:

    标签: requirejs


    【解决方案1】:

    来自RequireJS API docs

    但是,如果依赖名称具有以下属性之一,则将其视为常规文件 路径,就像传递给 &lt;script src=""&gt; 标签的东西:

    • 以“.js”结尾。
    • 以“/”开头。
    • 包含 URL 协议,例如“http:”或“https:”。

    由此看来,libs/jquery/jquery-1.7.1.min.js 末尾的显式“.js”似乎混淆了您的路径 re:baseUrl。请改用libs/jquery/jquery-1.7.1.min

    【讨论】:

    • 先生,您真是个天才。非常感谢。
    猜你喜欢
    • 2015-03-08
    • 2012-06-20
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 2011-08-13
    • 2014-08-25
    • 1970-01-01
    相关资源
    最近更新 更多