代码之家  ›  专栏  ›  技术社区  ›  Andrew Simpson

将我的ASP.NET.Core 2.0应用程序发布到IIS时未运行javascript

  •  0
  • Andrew Simpson  · 技术社区  · 7 年前

    我是这里的新手。我有一个VS2017 ASP.NET C Web应用程序。在这个阶段我不使用角。这是一个简单的网站。

    我隐藏分隔符,当用户单击菜单项时,与分隔符相关的内容会出现,而我隐藏其余分隔符。我使用JavaScript来完成这一点。

    在开发和IIS Express中,它起作用。当我发布到IIS时,它不起作用。静态页面显示“确定”,但菜单按钮不执行任何操作。

    如果按F12键,我可以看到没有错误。我还可以看到是否按network选项卡,我的site.js脚本似乎没有加载。

    我查看了环境标签(不确定如何在发布/发布中查看这些标签—希望看到一个更好的文档链接,直接告诉我如何使用)。

    在绝望中,我删除了所有与JS文件相关的环境标签。我知道这不是正确的方法,我只是想找出问题所在。

    为了进一步简化,我把 alert("hi") 直接进入我的JS文件,所以当我访问这个站点时它应该会弹出,但它没有。

    这是我的布局.cshtml页面:

    <!DOCTYPE html>
    <html style="height: 101%">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>@ViewData["Title"]</title>
    
        <environment include="Development">
            <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
            <link rel="stylesheet" href="~/css/site.css" />
        </environment>
        <environment exclude="Development">
            <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css"
                  asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
                  asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />
            <link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />
        </environment>
    </head>
    <body>
        <nav class="navbar navbar-inverse navbar-fixed-top">
            <div class="container">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                        <span class="sr-only">Toggle navigation</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                    @*<a asp-area="" asp-controller="Home" asp-action="Index" class="navbar-brand">Informed Products</a>*@
                    <a id="InformedServices" style="cursor: pointer" class="navbar-brand">Informed Services</a>
                </div>
                <div class="navbar-collapse collapse">
                    <ul class="nav navbar-nav">
                        @*<li><a asp-area="" asp-controller="Home" asp-action="Index">Home</a></li>
            <li><a asp-area="" asp-controller="Home" asp-action="About">About</a></li>*@
                        @*<li><a asp-area="" asp-controller="Home" asp-action="Contact">Contact</a></li>*@
    
    
    
                        <li><a id="HowWeWork" style="cursor: pointer">How We Work</a></li>
                        <li><a id="Pricing" style="cursor: pointer">Adaptive Pricing Service</a></li>
                        <li><a id="About" style="cursor: pointer">About</a></li>
                        <li><a id="ContactUs" style="cursor: pointer">Contact Us</a></li>
                    </ul>
                </div>
            </div>
        </nav>
        <div class="container body-content">
            @RenderBody()
            <hr />
            <footer>
                <p>&copy; 2018 - Informed Services</p>
            </footer>
        </div>
    
        @*<environment include="Development,Production">*@
            <script src="~/lib/jquery/dist/jquery.js"></script>
            <script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>
            <script src="~/js/site.js" asp-append-version="true"></script>
        @*</environment>
        <environment exclude="Development">*@
            <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.2.0.min.js"
                    asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
                    asp-fallback-test="window.jQuery"
                    crossorigin="anonymous"
                    integrity="sha384-K+ctZQ+LL8q6tP7I94W+qzQsfRV2a+AfHIi9k8z8l9ggpc8X+Ytst4yBo/hH+8Fk">
            </script>
            <script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/bootstrap.min.js"
                    asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.min.js"
                    asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal"
                    crossorigin="anonymous"
                    integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa">
            </script>
            <script src="~/js/site.min.js" asp-append-version="true"></script>
        @*</environment>*@
    
        @RenderSection("Scripts", required: false)
    </body>
    </html>
    

    在my site.js文件中:

    $(document).ready(function () {
    
        alert("b");
    
    });
    

    更新

    我在服务器上发现了, site.js 看起来不错,但是 site.min.js 是空的。这可能是什么原因?

    1 回复  |  直到 7 年前
        1
  •  2
  •   halfer Jatin Pandey    7 年前

    听起来你的缩小过程被破坏了 site.js 文件。作为一个权宜之计,你可以改变你的网站使用完整的版本,假设你不介意人们看到原始的源代码。

    为此,请更改以下行以引用 网站.js 相反:

    <script src="~/js/site.min.js" asp-append-version="true"></script>
    

    我建议你还是找一下为什么缩小在你的情况下失败了。