Hemant
Hemant

Reputation: 421

ASP.Net MVC Application points to localhost instead of application directory

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

Answers (3)

Nick Larsen
Nick Larsen

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

Marc Climent
Marc Climent

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

stimms
stimms

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

Related Questions