2012-04-03 15 views
0

したがって、私は.Net 4.0 ASP.NET Webアプリケーションをc:\ inetpub \ wwwroot \ myTestAppに公開しています。しかし、私がブラウザ(http://localhost/myTestAppを使用して)を介してそれにアクセスしようとすると、アプリケーションは何らかのリソース(スクリプト、画像など)を見つけることができないようです。.Net 4.0 Webアプリケーションpublish - リソースを見つけることができません

私はリクエストを見ているとき、 http://localhost/myTestApp/myTestApp/Scripts/jquery.validate.min.js 代わりの http://localhost/myTestApp/Scripts/jquery.validate.min.js

さらに詳しい情報:
1.私は、開発サーバ/ IISを使用してデバッグしていた場合、それはOKに動作します。
2.アプリケーションをWebサイトとして直接公開すると、正常に動作します。
3.アプリケーションを公開しようとしているフォルダが「既定のWebサイト」にあり、IISのWebアプリケーションとして既に構成済みです

何が間違っていますか?

+0

VS devのサーバー '/ MyApp'から常にサーバ - あなたのウェブサイトのプロジェクトのプロパティペインを見て - 私が思い出すならば、それは底部近くだし、それを変更します'/'とあなたのdevサーバはデフォルトのウェブサイトと同じように動くべきです – Basic

+0

はい、私はそれを見ることができます。私の問題はVS devサーバーではありません。 WebアプリケーションとしてIIS上に自分のアプリケーションを公開したときに発生します。 – gciochina

+0

はい、私は問題がライブサイトで使用していることを知っていますが、あなたの開発環境がWebサーバーと一致する場合、IISで問題が発生した場合VSで複製され、サイトを正しく開発できるようになります:) – Basic

答えて

1

aspxファイルでは、どのようにリソースを参照していますか?絶対パス、相対パス、およびアプリケーションの相対パスに関する問題があると思われます。その代わりに、絶対URLを与える代わりに使用し、以下の

<script src="~/Scripts/jquery.validate.min.js" runat="server" /> 
<script src="<%= ResolveClientUrl("~/Scripts/jquery.validate.min.js") %>" /> 

のいずれかを使用する

<script src="myTestApp/Scripts/jquery.validate.min.js" /> 

は、例えば、相対パスを使用する必要が

<script src="../Scripts/jquery.validate.min.js" runat="server" /> 

あなたができれば、それは厄介で混乱得ることができるよう、それはあなたが一つのディレクトリにマスターページを持っている場合からの相対ここで私は、相対避けるだろう、第3の場所にある別のページ、および子コントロール。

基本的には、サーバー側の〜を使用してアプリケーションのルートを参照します。

あなたの問題は、devサーバーとIISが異なるレベル(1つはhttp://localhost/にあり、もう1つはhttp://localhost/myTestApp/にあります)であり、もう1つはコード化されていないということに由来していると思います。

EDIT:

も参照してくださいRelative Paths in Javascript in an external file

+2

Grhmの答えに追加するだけで、MVCを使用する場合、これを実現するさまざまな方法があります。たとえば、http://stackoverflow.com/a/3816846/156755を参照してください。 – Basic

関連する問題