簡體   English   中英

使用ASP.NET MVC捆綁和縮小時出現奇怪的JavaScript錯誤

[英]Weird JavaScript error when using ASP.NET MVC bundling and minification

我正在使用ASP.NET MVC 5進行bundling and minification並在我的web.config中將debug設置為false時出現一個奇怪的錯誤。

我一直在使用捆綁和縮小一段時間,並且昨晚只是第一次看到這個錯誤,因為我的下拉菜單不起作用。 我無法確認這是否有效,因為我從未檢查過文件。

這是部分錯誤:

/* Minification failed. Returning unminified contents.
(2,1): run-time error CSS1019: Unexpected token, found '!'
(2,2): run-time error CSS1019: Unexpected token, found 'function('
(2,14): run-time error CSS1031: Expected selector, found ')'
(2,14): run-time error CSS1025: Expected comma or open brace, found ')'
(2,212): run-time error CSS1019: Unexpected token, found '('
(2,213): run-time error CSS1019: Unexpected token, found '"undefined"'
(2,224): run-time error CSS1019: Unexpected token, found '!'
(2,225): run-time error CSS1019: Unexpected token, found '='
(2,239): run-time error CSS1031: Expected selector, found '?'
(2,239): run-time error CSS1025: Expected comma or open brace, found '?'
(3): Scanner error CSS1002: Unterminated string: '></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c...

所以我決定創建一個獨立的ASP.NET MVC項目,只需使用jQuery 2.1.1 我還是得到了錯誤。 所以我認為如果我使用jQuery 1.11.1它會消失。 我仍然得到同樣的錯誤。

為什么我會收到此錯誤? 它顯然是jQuery文件中的一部分。 我在Bootstrap的JavaScript文件中遇到了同樣的錯誤。

什么時候最好使用捆綁和縮小? 只有你自己的JavaScript和CSS文件? 你是否應該捆綁和縮小第三方文件,或者只是使用他們的CDN? 我在工作的防火牆后面,所以使用外部CDN對我來說不是一個選擇。

這是我的web.config:

<system.web>
    <compilation targetFramework="4.5.2" />
    <httpRuntime targetFramework="4.5.2" />
</system.web>

我的_Layout文件:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <title>My Website</title>
    </head>
    <body>
        @RenderBody()
        @Scripts.Render("~/bundles/js")
    </body>
</html>

和我的BundleConfig.cs文件:

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new StyleBundle("~/bundles/js").Include(
            "~/Scripts/jquery-{version}.js"));
    }
}

產生的輸出是:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <title>My Website</title>
    </head>
    <body>
        <h2>Index</h2>
        <script src="/bundles/js?v=7gm4LP0WuTab97QPOJSizw2PGm8jrBl7HRdnANRLbBY1"></script>
    </body>
</html>

這兩個文件也存在問題:

  • html5shiv.js
  • Respond.js

所以問題是,它是無效的JavaScript錯誤還是捆綁和縮小充滿了錯誤?

有一個問題:

bundles.Add(new StyleBundle("~/bundles/js").Include(
            "~/Scripts/jquery-{version}.js"));

根據js文件使用ScriptBundle而不是StyleBundle

bundles.Add(new ScriptBundle("~/bundles/js").Include(
            "~/Scripts/jquery-{version}.js"
));

您可能StyleBundle項目中的StyleBundle代碼復制到普通的MVC項目中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM