15

部署到 IIS 后,我的样式表捆绑出现问题。我创建了一个简单的解决方案来演示我的问题。

我创建了一个简单的测试项目(VS 2012,MVC 4),它有一个控制器和一个包含“Hello World”字符串的视图。

我在内容文件夹下创建了一个(测试)CSS,简单的颜色更改

Content\helloWorldCss\helloWorldStyle.css

然后,我编辑了我的BundleConfig.cs类并将我的 CSS 的路径添加为一个新的包:

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

然后,我将新包添加到我的_Layout.cshtml 中

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

当我通过 VS(或页面检查器)运行我的应用程序时,我的 CSS 已成功应用,一切似乎都很好。但是,当我将项目发布/部署到 IIS(通过 VS)时,我可以查看我的 HTML,但我的 CSS 没有被应用。部署后存在以下文件:

Content\helloWorldCss\helloWorldStyle.css

真正让我感到困惑的是,当我更改我的 _Layout.cshtml 并将“常规”引用添加到相同的 CSS 而不是使用捆绑引用时,CSS 会在发布后应用而没有任何问题。

<link href="@Url.Content("~/Content/helloWorldCss/helloWorldStyle.css")" rel="stylesheet" type="text/css" />*

我将不胜感激任何帮助和建议。

4

3 回答 3

15

我认为您在这里遇到了名称冲突。ASP.NET MVC 将在缩小后在http://example.org/Content/helloWorldCss上创建一个文件,并且您已经有一个具有相同路径的文件夹。重命名捆绑包后可以再试一次吗?

BundleConfig.cs:

bundles.Add(new StyleBundle("~/Content/helloWorld").Include("~/Content/helloWorldCss/helloWorldStyle.css"));

_Layout.cshtml:

@Styles.Render("~/Content/helloWorld")
于 2013-09-22T17:34:46.097 回答
7

这就是我所做的。IIS 配置>身份验证>右键单击匿名身份验证>单击编辑>检查应用程序池标识

IIS 配置>身份验证>右键单击匿名身份验证>单击编辑>检查应用程序池标识

于 2013-10-23T14:15:22.610 回答
1

当您使用 VS 发布到测试服务器时,它使用 defaultAppPool。要使样式和 SimpleMembership 正常工作,您需要:

  1. 在您的服务器上安装 ASP.NET 4.0。cmd -- cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\ 键入 aspnet_regiis.exe -ir

  2. 在 IIS 中添加 ASP.NET 4.0 应用程序池。

  3. 将您的站点设置为使用 ASP.NET 4.0 作为应用程序池。

  4. 在 SQL Server 中添加一个 ASP.NET 4.0 安全登录并为其赋予 dbcreate 角色。

于 2013-11-21T15:28:37.430 回答