0

内部静的アセット サーバーを構築しています。各環境 (開発、ステージング、本番) には独自のアセット サーバーがあり、アセットは Web アプリケーション (html、aspx、ascx、css、javascript など) 全体で参照されます。

正しい環境で正しいアセット サーバーを参照するための 1 つの解決策は、クライアントに到達する前に応答をインターセプトする http モジュールを作成し、それに応じて URL を変更することです。このhttpモジュールはリクエストごとに実行され、基本的にクライアントが取得する前にレスポンス全体(一部は巨大)を解析するため、これは最もスケーラブルなソリューションではないかもしれないと考えています。

また、クライアント側の JavaScript を使用してクライアント側の参照を変更することも考えていますが、これは http モジュールのようにうまく機能しない可能性があります。

何かご意見は?ASP.NET における業界のベスト プラクティスは何ですか?

4

2 に答える 2

2

独自の LinkToStaticAsset コントロールを作成するかもしれません。各アセットの静的アセット サーバーへの相対パスのみを受け入れます。構成からベースパスを含めて、完全な URL を生成するようにします。

于 2009-07-07T21:16:27.230 に答える
1

Javascript に依存せずに (部分的にでも) サイトを機能させたい場合は、このサーバー側を維持する必要があります。

上記の別のアプローチは、アプリケーション レベルでこれを行うことです。つまり、静的アセット URL を生成し、web.config を介して特定のサーバーを指すように構成されたライブラリ メソッドを使用します。


それは次のようになります:-

(App_Code フォルダーまたは参照アセンブリ内)

public static class Util
{
    public static string AssetUrl(string relativePath)
    {
        // returns asset server address from web config with relative path appended
    }
}

(web.config 内)

<appSettings>
    <add key="AssetServerBaseUrl" value="http://foo.bar" />
    ...
</appSettings>

(aspx ファイル内)

<img src='<%= Util.AssetUrl("img/myimage.jpg") %>' ... />
于 2009-07-07T21:14:19.777 に答える