Friday, February 17, 2012

asp.net unable to locate a resource file


Im attempting to utilize some custom script and css files within an asp page. In Visual Studio 2010 I am not getting any warnings or errors as to the status of these files, but when I attempt to run the page, and I open the javascript console I get the error:




Failed to load resource: the server responded with a status of 404 (Not Found)



Here's how I am attempting to load the files in my ascx file:




<script type="text/javascript" src="scripts/jquery.js"></script>
<script type="text/javascript" src="scripts/jquery.scripts.js"></script>
<script type="text/javascript" src="scripts/jquery.alerts.js"></script>
<link href="styles/jquery.alerts.css" rel="stylesheet"/>



Anyone know whats going on here, why the browser can't locate the files but visual studio can?

2 comments:

  1. This happens when the location of the .aspx file is different to the location of the user control (ascx).

    When the user control is rendered in the browser it will actually have the location of the .aspx and tries to make the reference from that point. Whereas in VS, it will try to make the reference to the file from the .ascx location.

    Therefore, try referencing the files as if you were making the references from the .aspx file location. It shouldn't give you any error when rendering that page.

    ReplyDelete
  2. I've upvoted aleafonso's answer since he's correct. Now, to solve this issue, you can use the ResolveClientUrl method.

    Something like this:

    <script type="text/javascript" src='<%=ResolveClientUrl("scripts/jquery.js"%>'></script>

    ReplyDelete