发布网站时出现JS错误

时间:2015-04-01 14:50:41

标签: jquery asp.net-mvc visual-studio

在我发布网站时获得:Error: ReferenceError: $ is not defined。 即使我在Layout页面中添加了JQuery lib,现在也在partialView上抱怨没有找到JQuery lib 这就是我引用它的方式:

<script src="~/Scripts/jquery-1.10.2.min.js"></script>

当我在本地运行网站时,它工作正常,没有JS错误,但它一发布就会开始抱怨。通常我会用我的问题添加代码,但我不确定要添加什么代码。我只是想知道发布站点时js文件的加载方式是否与本地运行时的加载方式不同。有没有人遇到过这样的错误?

第二个想法,我会尝试添加代码。抱怨的代码是这样的: (这是部分观点)

<script type="text/javascript">
    $(document).ready(function () {
        $('#slider').rhinoslider();

        $("#sliderHolderQitoz").toggle("fade", 6000);
    });    
</script>

我的布局如下:

 <html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title</title>

    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")

    <script src="~/Scripts/jquery-1.10.2.min.js"></script>
    <script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>

    <link href="~/Content/rhinoslider-1.05.css" rel="stylesheet" />

    <link href="~/Scripts/jquery-ui.min.css" rel="stylesheet" />
    <script src="~/Scripts/jquery-ui.min.js"></script>
    <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
    <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
    <script src="~/Scripts/OwnedScripts/InitializeUI.js"></script>
    <script src="~/Scripts/OwnedScripts/Dialogs.js"></script>
    <script src="~/Scripts/OwnedScripts/Misc.js"></script>

    <script src="~/Scripts/ExtraScripts/rhinoslider-1.05.min.js"></script>
    <script src="~/Scripts/ExtraScripts/rhinoslider-1.05.js"></script>
    <script src="~/Scripts/ExtraScripts/mousewheel.js"></script>
    <script src="~/Scripts/ExtraScripts/easing.js"></script>

同样,在本地运行/ debuggin时,一切都很好,发布后出现错误

2 个答案:

答案 0 :(得分:1)

您是否尝试手动检查“真实”路径? 在我看来,你在本地和服务器上有不同的相对路径。

尝试替换      使用标准HTML脚本在本地和服务器上进行检查。

答案 1 :(得分:1)

我最终在花费了不切实际的时间后发现,问题在于网站无法找到:_ViewStart.cshtml。这在本地运行时工作正常,但在部署网站时它会成为一个问题。由于所有脚本引用都放在:_Layout.cshtml中,因此我在页面启动时收到了脚本错误。所以解决方案是添加:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

在索引页面的顶部,然后我们都很好。

有趣的是,我们的程序员最终会在拥有如此简单解决方案的东西上花费很多时间。但问题在于找到实际的原因/问题,能够应用简单的解决方案:D