Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
331 views
in Technique[技术] by (71.8m points)

c# - Style bundling not working after IIS deployment (MVC 4)

I'm having troubles with my style sheets bundling after deployment to IIS. I've created a simple solution to demonstrate my problem.

I've created a simple test project (VS 2012, MVC 4) with a single controller and a view containing an "Hello World" string.

I've created a (test) CSS under the content folder with simple simple color changing

ContenthelloWorldCsshelloWorldStyle.css

Then, I've edited my BundleConfig.cs class and added the path to my CSS as a new bundle:

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

Then, I've added the new bundle to my the _Layout.cshtml:

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

When I run my application via VS (or Page inspector) my CSS is being applied successfully and everything seems to be OK. However, when I publish/deploy my project to IIS (through VS), I can view my HTML but my CSS is not being applied. The following file exists after deployment:

ContenthelloWorldCsshelloWorldStyle.css

What really puzzles me is that when I alter my _Layout.cshtml and add a "regular" ref to the same CSS instead of using the bundle ref, the CSS is applied after publishing without any issues.

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

I will appreciate any help and advice on this.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

I think you've got a name collision here. ASP.NET MVC will create a file on http://example.org/Content/helloWorldCss after minification and you already have a folder with the same path. Can you try it again after renaming your bundle?

BundleConfig.cs:

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

_Layout.cshtml:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...