为什么CURL JS没有加载我的CSS文件?

时间:2012-04-16 12:23:28

标签: javascript asp.net curljs

美好的一天,我正在尝试CurlJS并且已经成功完成了大多数项目。但是,出于某种原因,我仍然无法使用CurlJS加载CSS文件。

Firebug(网络标签)显示他们的css.js插件正在加载:我假设它用于加载CSS文件。 Firebug(控制台选项卡)显示来自curl.js文件的“a.load不是函数”。

define.amd.curl

版本号为:“0.6.2”

我的问题是:为什么CSS文件没有加载?

我的代码看起来像:

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>

    <script type="text/javascript">
        curl =
        {
            baseUrl: '.',
            paths:
                {
                    curl: 'Scripts/Curl'
                    //,'css!':'Style' //<-- I even tried this with no success
                },
            pluginPath: 'Scripts/Curl/curl/plugin'
        };
    </script>

    <script src="Scripts/Curl/curl.js" type="text/javascript"></script>

    <script type="text/javascript">
        curl(['css!Style/Test.css'])
            .then(
            function (css) {
                if (css)
                    alert("It Works!");
            },
            function (error) {
                alert("It failed!");
            });
    </script>

</head>
<body>
    <form id="form1" runat="server">
        <div class="test" style="border: 1px solid black; text-align: center; width: 400px;">
            If the CSS loads this text will be RED.
        </div>
    </form>
</body>
</html>

CONSOLE TAB:
This is the screenshot from Firebugs Console

NET TAB:
This is the screenshot from Firebugs Net

更新:
我'可以'使用以下JavaScript来加载给定模块的CSS依赖项,但我宁愿使用Curls本机功能。

var head = document.getElementsByTagName('head')[0];
var files = ['/Style/Test.css']; //<-- my list of files
for (var i = 0, l = files.length; i < l; i++) {
    var link = document.createElement('link');
    link.href = files[i];
    link.rel = "stylesheet";
    link.type = "text/css";
    head.appendChild(link);
}

3 个答案:

答案 0 :(得分:1)

我发现您的代码段存在一些问题:

  1. 成功回调的签名有两个参数($,css),但是你只需要一个模块“Test.css”。
  2. 不要尝试通过脚本元素加载模块。那不行。
  3. 在给出的代码片段中,我无法解释“a.load不是函数”消息。还有一些我无法看到的事情。

    [更新发布屏幕截图后:] 在Firebug屏幕截图中显示的一小段代码看起来像css.js文件已被最小化/压缩。它并不意味着单独最小化。使用curl的make实用程序用css构建curl版本!插件烘烤,或抓住已经烧入CSS的curl / dist版本!插件模块。这应该可以解决问题。

答案 1 :(得分:0)

我不熟悉CurlJS,但它可能与CSS文件的相对路径有关。

尝试更换:

curl(['css!Style/Test.css'])

使用:

curl(['css!./Style/Test.css'])

或:

curl(['css!../../Style/Test.css'])

答案 2 :(得分:0)

使用另一个curl.js文件... kitchen-sink版本包含插件,其他版本没有。

https://github.com/cujojs/curl/tree/master/dist/curl-kitchen-sink