使用的mvc4課程捆綁的JavaScript課程未捕獲的SyntaxError:意外的標記<
Uncaught SyntaxError: Unexpected token <
上裝載捆綁功能。隨着debug="true"
一切都像例外工程。
我該如何解決錯誤,或者我可以禁用僅用於腳本的捆綁功能?
解決
改名爲包名稱不與任何目錄
使用的mvc4課程捆綁的JavaScript課程未捕獲的SyntaxError:意外的標記<
Uncaught SyntaxError: Unexpected token <
上裝載捆綁功能。隨着debug="true"
一切都像例外工程。
我該如何解決錯誤,或者我可以禁用僅用於腳本的捆綁功能?
解決
改名爲包名稱不與任何目錄
匹配之前,你可以回答的是什麼原因導致這個錯誤的問題,你首先要弄清楚發生錯誤的位置。捆綁代碼的唯一區別在於它被縮小。一個非常簡單的方式做,這是使用的Bundle
代替ScriptBundle
:
var thirdParty = new Bundle("~/bundles/thirdParty").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/bootstrap.js",
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/jquery.mockjson.js",
"~/Scripts/jQuery.XDomainRequest.js",
"~/Scripts/knockout-{version}.js"
);
thirdParty.Transforms.Clear();
bundles.Add(thirdParty);
現在,如果你有多個JavaScript包,直到你的罪魁禍首束爲他們做這一個接一個。
我發現調試這些問題的唯一辦法就是把你的包和分裂成兩半,進一步打破它:
var thirdParty1 = new Bundle("~/bundles/thirdParty1").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/bootstrap.js",
"~/Scripts/jquery-ui-{version}.js"
);
bundles.Add(thirdParty1);
var thirdParty2 = new ScriptBundle("~/bundles/thirdParty2").Include(
"~/Scripts/jquery.mockjson.js",
"~/Scripts/jQuery.XDomainRequest.js",
"~/Scripts/knockout-{version}.js"
);
bundles.Add(thirdParty2);
注意到,我們只禁用縮小爲一個這兩個捆綁 - thirdParty1
。請確保並更新您的@Scripts.Render
以指向您的新捆綁包。當你建立和重新加載時,你將繼續得到錯誤,或者你不會,然後會知道哪一半包含麻煩的代碼。但請確保和測試兩種方式,在我的示例中縮小thirdParty1
並取消驗證thirdParty2
,反之亦然,以確定其他事情沒有進行。您還可能想要保留DevTools或您打開的任何瀏覽器調試器,並查看捆綁包的來源,以確保它們按預期行事。
如果您有很多腳本,則可以通過將縮小的包中的腳本(在我的情況下爲thirdParty1
)從未綁定的包(thirdParty2
)中逐個移除或以塊的形式繼續移動。請記住在中間重建,注意不要更改腳本的包含順序。
這應該至少讓你回到有問題的文件 - 並希望搜索「<」會讓你的答案。
希望有所幫助。
良好的建議和詳細 - 只有這個問題纔會得到答案。 +1 – CodingIntrigue
謝謝。快樂黑客!如果你知道它是什麼,請告訴我。我很好奇。 – Grinn
他的解決方案幫助我,重新命名該包與目錄不同。我是這樣分組的:
@Styles.Render("~/jqueryui")
@Scripts.Render("~/jqueryui")
這樣用jQuery UI樣式做這件事似乎有一個錯誤。我剛更名爲:
@Styles.Render("~/jqueryuiz")
@Scripts.Render("~/jqueryui")
這個問題已經解決了。所以腳本似乎沒有受到這種影響,也沒有類似的捆綁包,我有大約20套捆綁加載,這是唯一的問題。
我的問題: 我在我的Content文件夾中引用了腳本文件,但其包名爲〜Scipts。我將我的軟件包重命名爲〜DefaultScripts並解決了我的問題。我不想引用腳本文件夾,但它是去那裏而不是我的內容文件夾。
bundles.Add(New ScriptBundle("~/Scripts").Include(
"~/Content/assets/global/plugins/jquery.min.js",
"~/Content/assets/global/plugins/bootstrap/js/bootstrap.min.js",
"~/Content/assets/global/plugins/js.cookie.min.js",
"~/Content/assets/global/plugins/jquery-slimscroll/jquery.slimscroll.min.js",
"~/Content/assets/global/plugins/jquery.blockui.min.js",
"~/Content/assets/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js",
"~/Content/assets/global/scripts/app.js",
"~/Content/assets/layouts/layout2/scripts/layout.min.js",
"~/Scripts/custom.js"))
bundles.Add(New ScriptBundle("~/DefaultScripts").Include(
"~/Content/assets/global/plugins/jquery.min.js",
"~/Content/assets/global/plugins/bootstrap/js/bootstrap.min.js",
"~/Content/assets/global/plugins/js.cookie.min.js",
"~/Content/assets/global/plugins/jquery-slimscroll/jquery.slimscroll.min.js",
"~/Content/assets/global/plugins/jquery.blockui.min.js",
"~/Content/assets/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js",
"~/Content/assets/global/scripts/app.js",
"~/Content/assets/layouts/layout2/scripts/layout.min.js",
"~/Scripts/custom.js"))
我發現很難使用MVC捆綁時,在釋放模式調試的問題,但一個錯誤,我發現自己做路過已經過壓縮JS/CSS的捆綁引擎 - 只有通過它未精縮腳本,捆綁發動機會自行縮小它 – CodingIntrigue
謝謝。沒有任何縮小的JS/CSS ... –
您是否正在使用適當的'@Scripts.Render()'和'@ Styles.Render()'調用?你檢查過瀏覽器控制檯,看看它返回的是什麼? – CodingIntrigue