私は高低を検索しましたが、それでも明確な答えを見つけることができません。
ASP.NETランタイムが、、などの静的ファイルへの要求を含むすべての要求を処理するように、IIS 7.0またはIISでWebアプリケーションを構成するにはどうすればよいですか?*.js
*.gif
私がやろうとしていることは次のとおりです。
私たちは一種のSaaSyサイトを持っており、それをすべての顧客に「ブランド化」することができます。「ブランディング」とは、カスタムマスターページを開発し、多数*.css
の画像やその他の画像を使用することを意味します。
当然のことながら、私はVirtualPathProvider
次のように動作するを使用しています。
public override System.Web.Hosting.VirtualFile GetFile(string virtualPath)
{
if(PhysicalFileExists(virtualPath))
{
var virtualFile = base.GetFile(virtualPath);
return virtualFile;
}
if(VirtualFileExists(virtualPath))
{
var brandedVirtualPath = GetBrandedVirtualPath(virtualPath);
var absolutePath = HttpContext.Current.Server.MapPath(brandedVirtualPath);
Trace.WriteLine(string.Format("Serving '{0}' from '{1}'",
brandedVirtualPath, absolutePath), "BrandingAwareVirtualPathProvider");
var virtualFile = new VirtualFile(brandedVirtualPath, absolutePath);
return virtualFile;
}
return null;
}
基本的な考え方は次のとおりですbranding
。Webアプリ内にフォルダーがあり、各「ブランド」のフォルダーが含まれています。「ブランド」はホスト名と同じです。つまり、リクエストはhttp://foo.example.com/
からの静的ファイルを使用する必要がありますがbranding/foo_example_com
、からのhttp://bar.example.com/
コンテンツを使用する必要がありますbranding/bar_example_com
。
ここで、IISに実行させたいのは、静的ファイルへのすべての要求をに転送することですStaticFileHandler
。これにより、この「インフラストラクチャ」全体が使用され、正しいファイルが提供されます。ただし、できる限り試してみてください。これを行うようにIISを構成することはできません。