IIS Express不应用CSS和JS文件

时间:2015-03-18 14:00:32

标签: asp.net asp.net-mvc iis-express

使用IIS Express从Visual Studio运行我的应用程序时,浏览器只显示没有应用CSS或JavaScript的内容。

在观看网络时,正在请求css和js文件,服务器返回200.这些响应的正文是正确的文件内容。

如果我直接在浏览器中输入这些文件的URL,浏览器会显示(下载)正确的文件。

我试过IE和Chrome;同样的问题。

这是我在布局中的内容,但我也尝试直接链接CSS文件而不使用Styles.Render

<head>
    <meta charset="utf-8" />
    @*Set the viewport width to device width for mobile *@
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>Site Name - @ViewBag.Title</title>
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />

    @Styles.Render("~/Content/css")

    @RenderSection("head", required: false)
    @Scripts.Render("~/bundles/modernizr")
</head>

BudleConfig.cs

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*"));

   // Use the development version of Modernizr to develop with and learn from. Then, when you're
   // ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
   bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                    "~/Scripts/modernizr-*"));

   bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));

   #region Foundation Bundles
        bundles.Add(Foundation.Scripts());
    #endregion
}

HTML看起来像这样

<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Site Name</title>
<link href="/favicon.ico" rel="shortcut icon" type="image/x-icon" />

<link href="/Content/site.css" rel="stylesheet"/>
<script src="/Scripts/modernizr-2.8.3.js"></script>
</head>

2 个答案:

答案 0 :(得分:1)

您可以在Scripts and Content文件夹中添加web.config,其中包含以下内容:

<configuration>
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>
</configuration>

这应该有用。

从项目中排除web.config文件,这样当您发布项目时,它不会随项目一起发布。

答案 1 :(得分:1)

我的Web.Config有一个这样的自定义条目:

<system.webServer>
    <staticContent>
        <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
    </staticContent>
</system.webServer>

调试我的VS2012环境时,给了我一个&#34; Script Block&#34;我页面下面的标签,我的css,pngs和javascript无法加载。

在我将页面评论后,然后加载正常。原来IIS Express使用你的mimeMap设置而不是它自己的设置。因此,要么在Web配置中指定所有mime类型,要么将自定义类型添加到IIS Express配置。

干杯。