3

IISの仮想ディレクトリを使用してサーバーにアプリケーションを展開するときに問題が発生します。

同じファイルを仮想のデフォルトのWebサイトで直接実行するように構成し、ポート81で実行される新しいWebサイトのルートでも実行するように構成しました。どちらの構成も独自の同一のアプリプールを使用します。ポート81のサイトは正常に機能しますが、仮想ディレクトリで実行されているサイトはバンドルをロードしません。

このページには、URLに次のようなバージョンが欠落しているリンクが表示されます。

<link href="/MyVirtualDir/Content/css/site?v=" rel="stylesheet">

URLはサーバーから200ステータスを返しますが、コンテンツは完全に空です。

私はこのバグチケットを参照するこのような質問をSOで調べましたが、これはバンドルに含まれるファイルが「仮想」であるか、物理フォルダーのルートの下にない場合であると理解しています。私の場合、これは真実ではありません。

あなたが私に与えることができるどんな助けにも乾杯。この構成がサポートされないとは信じられないので、どこかで何か間違ったことをしているに違いありません。

更新: 私の問題を説明するチケットがここのWeb最適化コードプレックスサイトで発生したと思いますhttp://aspnetoptimization.codeplex.com/workitem/55これは私をさらに得るというわけではありません:(

4

1 に答える 1

2

新しいプロジェクトと比較した後、私は問題を突き止めました:

私はT4MVCを使用していました(コードで「マジックストリング」を使用せず、賢くしようとしています)。だから私は次のようなリンクを使用していました

bundles.Add(new ScriptBundle("~/Scripts/all")
            .Include("~"+Links.Scripts.Library.jqueryPlugin.jquery_ui_js), ...));

これが仮想ディレクトリで実行されると、パス内の仮想ディレクトリ名で解決されるため、ファイルが見つかりません。

これが同じ問題に遭遇した他の誰かに役立つことを願っています。また、T4MVCは、将来のリリースでバンドル内のマジックストリングの使用を改善しようとしているようです。議論についてはここを参照してください

于 2013-02-06T13:20:27.923 に答える