Reputation: 421
Hi I am deploying an MVC application on IIS on Win7. I have deployed it on localhost/appPortal. appPortal is configured as application rather than virtual directory. Unfortunately the application root in MVC gets mapped to localhost instead of localhost/appPortal. This is breaking all my links to scripts, css, images etc. Can anyone help me in understanding why this happens and how to fix it?
Upvotes: 0
Views: 2432
Reputation: 18877
You could also just use the HTML 5 doc type and the <base>
tag.
Yep, I just did that.
Thats probably not an option though so you should use the URL helper as Marc stated.
Upvotes: 0
Reputation: 9484
More information would be interesting on how you are creating the links.
The first thing to check is that the application is correctly created in IIS, which I suppose it is. (If not you'll probably get errors from nested web.config files)
The second thing, urls should be created like this and not directly:
<%= Url.Content("~/yourpath/yourfile.css") %>
Maybe this question about Url.Content shows you more options. Check as well MSDN documentation on UrlHelper and HtmlHelper.
Upvotes: 2
Reputation: 44094
The best solution is not to use rooted links in your application (ones which start with /). You can use ~/ as a reference to the root of the application. I use things like this
<script src="<%=ResolveClientUrl("~/script/something.js") %>"
to resolve to /scripts. Doing this makes your application more portable.
Upvotes: 0