从Visual Studio 2015在Azure中发布应用程序无法加载.CSS

时间:2016-05-10 14:09:46

标签: c# css visual-studio azure visual-studio-2015

从Azure中的Visual Studio 2015发布我的应用程序时出现此问题;它看起来像这样:

enter image description here

显然它没有正确加载.css文件(谁知道还有什么)。

我做了很多调查,但与我的预期相反,很难找到问题的根源,但在一些丢失的论坛中,我发现web.config在发布时更改了其属性,我的本地web.config看起来像这样:

<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
<httpModules>
  <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
</httpModules>

我的远程web.config如下:

<system.web>
<authentication mode="None" />
<compilation targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
<httpModules>
  <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
</httpModules>

当我在编译中添加debug =“true”时,它正常工作:

enter image description here

我想留下来帮助其他人解决同样的问题,顺便提一下我的问题:

1-为什么禁用调试会影响如何加载.css文件(可能还有其他文件)?

2-是否有其他方法可以在不允许远程服务器调试的情况下纠正此问题?

3-也许还有另外一种解决方法,我在寻求帮助时错过了,如果有人经历过这个,请分享你的知识。

人们可以预期这将是非常普遍的,毕竟我只是在azure xD中发布应用程序 值得一提的是,我的应用程序也适用于数据库,我现在将尝试学习如何在azure xD上实现它

谢谢!

修改 BundleConfig.cs

using System.Web;
using System.Web.Optimization;

namespace Distribuidora_Saturno
{
    public class BundleConfig
    {
        // Para obtener más información sobre Bundles, visite http://go.microsoft.com/fwlink/?LinkId=301862
        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.validate*"));

            // Utilice la versión de desarrollo de Modernizr para desarrollar y obtener información. De este modo, estará
            // preparado para la producción y podrá utilizar la herramienta de compilación disponible en http://modernizr.com para seleccionar solo las pruebas que necesite.
            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                        "~/Scripts/modernizr-*"));

            bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                      "~/Scripts/bootstrap.js",
                      "~/Scripts/respond.js"));

            bundles.Add(new StyleBundle("~/Content/CSS").Include(
                      "~/Content/CSS/bootstrap.css",
                      "~/Content/CSS/site.css"));
        }
    }
}

2 个答案:

答案 0 :(得分:3)

我想我知道发生了什么。因此,我在Chrome开发者工具中访问了您的网站并监控了请求/响应,对于您的CSS捆绑包,我发现IIS正在响应403错误。

enter image description here

出于好奇,我访问了捆绑的链接,这就是我得到的:

enter image description here

所以我在捆绑文件上搜索了403错误并遇到了这个帖子:ASP.NET MVC framework 4.5 CSS bundles does not work on the hosting,它建议更改捆绑包的名称,因为它与服务器上的物理路径冲突。

您可以尝试更改套件名称吗?尝试类似:

        bundles.Add(new StyleBundle("~/CSSBundle").Include(
                  "~/Content/CSS/bootstrap.css",
                  "~/Content/CSS/site.css"));

然后将视图页面中的路径从/Content/CSS更改为/CSSBundle

这应该可以解决问题。

答案 1 :(得分:1)

我认为你应该寻找你的BundleConfig.cs类。在最近的变化发布后,它可能会破坏。将BundleConfig.cs文件发布到要添加样式包的位置。