我正在使用带有多个javascript文件的Ember.js创建单页应用程序,这些文件在VS2012中使用捆绑功能进行组合和缩小。
如果我启用缩小(BundleTable.EnableOptimizations = true;),则ember.js库(ember-1.0.0-rc.3.js)不包含在ember包中。为了澄清,文件名不以“.min.js”或“.debug.js”结尾。我的包定义如下:
bundles.Add(new ScriptBundle("~/bundles/ember").Include(
"~/Scripts/handlebars-1.0.rc.3.js",
"~/Scripts/ember-1.0.0-rc.3.js",
"~/Scripts/ember-i18n.js",
"~/Scripts/localize/loc-slovak.js"));
并在页面上使用:
@Scripts.Render("~/bundles/ember")
我怀疑文件太大(超过28000行,774 kiB)。我试图将nuget包Microsoft.AspNet.Web.Optimization更新到最新版本,但是id没有解决我的问题。
答案 0 :(得分:0)
.NET的Bundler breaks Ember RC3如果你缩小它。它也打破了Ember-Data。我们必须包含所有与Ember相关的脚本,而不是直接在_Layout.cshtml
中捆绑,而我们正在处理不同的解决方案(我们可能会为Ember包含不同的转换):
<script type="text/javascript"
src="@Url.Content("~/scripts/ember-1.0.0-rc.3.min.js")"></script>
<script type="text/javascript"
src="@Url.Content("~/scripts/ember-data.min.js")"></script>
如果你正在使用SPA模板(download | source),你应该没事,因为它仍在使用RC2;但如果你更新到RC3,那么你必须根据this sample修改包配置和布局文件。
我没有时间将PR发送到SPA模板,但是我有这个问题的更新(今晚会这样做)
如果您正在使用SPA模板,那么另一件事:它带有一个HTML帮助器@Html.RenderEmber()
,用于在调试模式下呈现View文件中的模板。此方法不会根据Ember约定呈现模板名称,因此我现在添加了另一种方法(@Html.RenderEmberTemplates()
)。它们应该在PR / merge之后保持同步。
在Myslik的回购中添加的样本可能是此时最新的样本,我建议你去寻找参考。