捆绑的脚本,渲染但在2017年和2017年发布后不起作用

时间:2018-02-08 17:41:36

标签: javascript c# asp.net visual-studio-2017 bundling-and-minification

我有我是建立在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>

2 个答案:

答案 0 :(得分:1)

当你说“......现在javascripts都在网站上呈现,但它们都不起作用”时,你的意思是什么?你在浏览器控制台上看到任何javascript错误吗?如果您没有看到任何错误,您是否尝试添加类似“警报”(“这是测试”)的内容;“到你的js文件,看它是否命中?

此外,如果您完全确定脚本已呈现,为了缩小问题范围,请尝试未优化的js版本并查看它是否有效。如果确实如此,那么在优化过程中显然会遗漏/错误,我们可能需要采用不同的方法来查看。如果它仍然不起作用,将'debugger'语句放到任何被调用的javascript函数中,看看是否可以在浏览器的控制台中获取任何方法。执行此操作时,请保持浏览器控制台处于打开状态。

答案 1 :(得分:0)

好吧取消狗!我想到了。实际上是在暗黑破坏神的评论的帮助下。我在浏览器中看到它说加载Jquery时出错了。所以我查看了我的项目,因为NuGet重新安装了我的所有软件包,jquery脚本在那里,但没有包含在我的项目中。这解释了为什么它在本地调试时有效,但不是在我发布它时。它将那些jquery脚本从发布中删除。

所以感谢暗黑破坏神...会对此给予您赞赏,但您只发表了评论,我不知道如何将您的评论标记为有用。