7

同じルック アンド フィールを持つ複数のテレリック MVC4 カミソリ プロジェクトを含むビジュアル スタジオ ソリューションがあります。すべての MVC4 プロジェクトに同じレイアウト、CSS/スタイル、画像、および js ファイルをコピーしたくありません。この再利用性を達成するための最良の方法は何ですか? commonUI プロジェクトの仮想ディレクトリを作成して _ViewStart.cshtml でhttp://localhost/ ... を使用して _layout.cshtml を参照しようとしたところ、「http:/localhost/MyMvcApp/Views/Shared/_Layout.cshtml」と文句を言われました。 ' は有効な仮想パスではありません。"

助けてください!

4

2 に答える 2

10

4 つの推奨事項:

1) 領域を調べます。別々のプロジェクトを持つ代わりに、これらは同じシステム (管理者など) の本当に異なるコンポーネントですか?

2)ビジュアルスタジオで既存のアイテムを追加し、リンクを介してアイテムを追加します。これでもデプロイ用に複製されますが、1 つのソースを保持できます。

3) 独自の nuget パッケージを作成して、これを行うことを検討してください。そうすれば、CSS と画像をコピーしてもパッケージ化され、必要に応じてパッケージを更新できます。利点は、1 つのプロジェクトを更新できる一方で、もう 1 つのプロジェクトを再テストする必要がないことです (それらが別々であり、1) が適用されない場合)。

4)これは他のファイルよりも醜いですが、IISではフォルダーにマップできると信じているため、プロジェクト内のリンクでこれらのファイルを参照し、そこに展開せず、展開時に適切なフォルダーにマップすることができます単一のソース パス。

アプリケーション パスを共有する方法がわかりません。

編集:

私はこれを試したことがないので、動作を保証することはできませんが、共有アイテムを別のプロジェクトでコンパイルしてから、他のすべてのプロジェクトで DLL を参照してください。

私が見つけた参照はこれですが、これが機能することを確認していません。これが探索するための実行可能なパスであると考えてください:

http://www.chrisvandesteeg.nl/2010/11/22/embedding-pre-compiled-razor-views-in-your-dll/

于 2012-05-04T16:16:06.187 に答える