2

私の目標は、IISの同じ親仮想ディレクトリですべてホストされている複数のWebサイト間で、イメージ、css、jsなどを共有することです。もちろん、画像パスをハードコーディングすることもできますが、.NETにIIS構成を使用してURLをインテリジェントに解決できるメソッドがあればいいのにと思いました。

これが私のファイル/仮想ディレクトリ構造です:

Parent Site (Virtual Directory)
  default.aspx
  mypage.aspx
  otherpage.aspx
  images
    - logo.jpg
  css
    - site.css
  Subsite1 (Virtual Directory)
    - default.aspx
    - products.aspx
  Subsite2 (Virtual Directory)
    - default.aspx
    - products.aspx
    - miscellaneous.aspx

Parent Site、、Subsite1およびはすべて、それぞれhttp ://parentsite.com、http://subsite1.com、およびhttp://subsite2.comSubsite2用に設定された仮想ディレクトリです。これらのサイト間で画像、js、cssなどを共有したいと思います。

サブサイトの1つ(http://subsite.com/default.aspxなど)から呼び出されたときにhttp://parentsite.com/images/logo.jpg~/images/logo.jpgとして解決されるメソッドは.NETにありますか?

4

3 に答える 3

3

サブドメインを作成しcdn、リソースファイルをそのサブドメインにポイントする必要があります。

http://cdn.parentsite.com/images/logo.jpg
http://cdn.parentsite.com/css/site.css

等..

これ~/images/logo.jpgは、アプリのルート以外には解決されません。それがの要点です~

于 2012-05-07T20:08:18.463 に答える
3

IIS6およびIIS7でも、すべての子サイトで「アセット」と呼ばれる新しい仮想ディレクトリを使用できます。

更新されたサイトレイアウト:

Parent Site (Virtual Directory)
     default.aspx
     mypage.aspx
     otherpage.aspx
     assets
          -images
               - logo.jpg
          -css
               - site.css    

Subsite1 (Virtual Directory)
     - default.aspx
     - products.aspx
     assets (Virtual Directory to parent assets)

Subsite2 (Virtual Directory)
     - default.aspx
     - products.aspx
     - miscellaneous.aspx 
     assets (Virtual Directory to parent assets)

この構造を使用すると、同じ「assets」フォルダをすべてのサイトと共有し、「〜/assets」としてアクセスできます。これにより、IISが応答している任意のドメインでアセットを使用できます。

http://parentsite.com/assets

http://childsite.com/assets

CDNは優れたオプションですが、多くの場合、 http : //cdn.parentsite.comやhttp://cdn.childsite.comなどのサイトごとに個別のDNSエントリを作成し、ファイルをhttpとして参照する関数を作成します。 //cdn.(currentdomain)。

私の意見では、共有アセットフォルダーへの絶対パスまたは相対パスを使用すると、作業が楽になります。

于 2012-05-08T13:42:31.750 に答える
1

1つのオプションは、共有イメージを持つresources.site.comを作成するか、CDNに移動することです。

次に、それらのリソースを消費する各サイトに、リソースがある構成設定があります。これらのサイトでは、構成設定を使用して、リソースへの完全修飾URLをフォーマットします。

コードでresources.site.comを抽象化したので、同じサーバー、異なるサーバー、CDNなどに配置できます...問題ではありません。柔軟にサービスを提供できます。同じサーバー上で開始することもできます。地理的に最適化する場合は、CDNに移動します。

于 2012-05-07T20:10:51.567 に答える