我尝试部署基于 Durandal 的解决方案。但是一旦部署,我就会收到以下错误。
Uncaught ReferenceError: requirejs is not defined main.js:1
(anonymous function)
我探索了与项目一起部署的文件,并且 require 包含在解决方案/路径中。这些文件已与它们一起部署。开发和生产副本之间的所有不同之处在于我的 java 脚本文件被压缩了。我的下一步是看看这是否与这个问题有任何关系?
更新:我发现问题的根源如下:
<body>
<div id="applicationHost">
@Html.Partial("_splash")
</div>
@Scripts.Render("~/scripts/vendor")
@if (HttpContext.Current.IsDebuggingEnabled)
{
<script type="text/javascript" src="~/App/durandal/amd/require.js" data-main="@Url.Content("~/App/main")"></script>
}
else
{
<script type="text/javascript" src="~/App/main.js"></script>
}
</body>
如果我删除IsDebuggingEnabled检查,并保留以下内容,则一切正常(显然)
<script type="text/javascript" src="~/App/durandal/amd/require.js" data-main="@Url.Content("~/App/main")"></script>
据我记得,我还没有接触过这段代码(由模板在初始项目设置中创建)。Durandal VSX 模板中的所有内容都应该如此。
知道为什么在非调试部署期间会删除 require 吗?:/