これはかなり一般的な使用例のようですが、これを設定する方法に関する情報を見つけることはできません。
画像をアップロードする「管理者」サイトと、それらの画像を表示する必要がある通常の Web サイト (別のプロジェクト) があります。両方のプロジェクトで画像を表示できる必要があります (そのため、単に Web サイトのプロジェクト ディレクトリに画像を保存するだけでは終わりではありません)。
本番環境では、これは簡単なことです。IIS で仮想ディレクトリを設定しただけですが、Visual Studio で開発しているため、これに対する直接的なサポートはありません。IIS Express 構成ファイルに移動して仮想ディレクトリを手動で追加することをオンラインで見たことがありますが、これには 2 つの大きな問題があります。1) 私はマルチ開発者環境にいて、すべての開発者にこれを手動で一貫した方法を使用することはできません。2) コードでこの静的ディレクトリを自動的に参照する方法がないため、画像参照へのパスをハードコーディングする必要があり、これは非常に悪い考えです。
また、プロジェクトでリンクを作成できることも認識していますが、設計時に知っている静的リソースではなく、アップロードを扱っているため、プロジェクトで新しいアップロードごとに手動でリンクを作成します (特にこの場合開発中のテスト専用です)は正気ではありません。
では、Visual Studio での開発のみを目的として、プロジェクト間でリソースを動的に共有する最善の方法は何でしょうか?
価値があるのは、これらは両方とも ASP.NET MVC 4 プロジェクトであり、私は Windows 7 ボックスで Visual Studio 2012 を使用していることです。
編集画像をアップロードするときに、その画像への相対パスがデータベーステーブルに保存されるように指定する必要があります。私の本当の問題は、その部分的なパスを、まったく別のプロジェクトから実際にアクセス可能な URL に解決することにあると思います。私が同じプロジェクトにいた場合、単純に のようなものUrl.Content(Model.ImageUrl)
にしますが、画像が実際に同じプロジェクトにない場合、これは明らかに解決しません。