从Azure中的Visual Studio 2015发布我的应用程序时出现此问题;它看起来像这样:
显然它没有正确加载.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”时,它正常工作:
我想留下来帮助其他人解决同样的问题,顺便提一下我的问题:
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"));
}
}
}
答案 0 :(得分:3)
我想我知道发生了什么。因此,我在Chrome开发者工具中访问了您的网站并监控了请求/响应,对于您的CSS捆绑包,我发现IIS正在响应403
错误。
出于好奇,我访问了捆绑的链接,这就是我得到的:
所以我在捆绑文件上搜索了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文件发布到要添加样式包的位置。