我有我是建立在VS 2015年网站和一些东西发生了,当我试图regrab从源头控制和长话短说我不能项目'吨得到它发布在VS 2015年,因为MSBuildTools的错误我无法解决。
我能够让网站在2017年发布,现在javascripts都在网站上呈现,但它们都不起作用。我不知道发生了什么事。它与我在2015年工作时完全相同的项目,其中javascripts在我能够发布时都呈现并正常工作。
当我在2015年或2017年进行调试时,javascripts都可以完美渲染和工作。
这是我的BundleConfig.cs的片段......
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/Bundles/Scripts/Areas/Admin/AdminBar").Include(
"~/Scripts/Areas/Admin/AdminBar.js"));
BundleTable.EnableOptimizations = true;
}
EnableOptimizations我在本地调试时注释掉。
当我发布它时,所有捆绑的css都会渲染并正常工作。
哦,我使用我认为他们称之为模块化脚本的东西?我的.js文件看起来像这样......
Scripts.Areas.Admin.AdminBar = (function (my, $)
{
// Local variables
my._settings = {};
my.setup = function (settings)
{
my._settings = settings;
}
return my;
}(Scripts.Areas.Admin.AdminBar || {}, jQuery));
然后在我看来,我把它渲染成......
@Scripts.Render("~/Bundles/Scripts/Areas/Admin/AdminBar")
然后在视图中将调用该文件中的函数,如此...
<script type="text/javascript">
Scripts.Areas.Admin.Adminbar.setup()
</script>
答案 0 :(得分:1)
当你说“......现在javascripts都在网站上呈现,但它们都不起作用”时,你的意思是什么?你在浏览器控制台上看到任何javascript错误吗?如果您没有看到任何错误,您是否尝试添加类似“警报”(“这是测试”)的内容;“到你的js文件,看它是否命中?
此外,如果您完全确定脚本已呈现,为了缩小问题范围,请尝试未优化的js版本并查看它是否有效。如果确实如此,那么在优化过程中显然会遗漏/错误,我们可能需要采用不同的方法来查看。如果它仍然不起作用,将'debugger'语句放到任何被调用的javascript函数中,看看是否可以在浏览器的控制台中获取任何方法。执行此操作时,请保持浏览器控制台处于打开状态。
答案 1 :(得分:0)
好吧取消狗!我想到了。实际上是在暗黑破坏神的评论的帮助下。我在浏览器中看到它说加载Jquery时出错了。所以我查看了我的项目,因为NuGet重新安装了我的所有软件包,jquery脚本在那里,但没有包含在我的项目中。这解释了为什么它在本地调试时有效,但不是在我发布它时。它将那些jquery脚本从发布中删除。
所以感谢暗黑破坏神...会对此给予您赞赏,但您只发表了评论,我不知道如何将您的评论标记为有用。