0

私たちのセットアップでは、IIS 7 セットアップに同じ物理パスを指す 2 つの異なる Web サイトがあります。バインディング http:// websitename .domain.com/ (仮想ルート ~ は /) を持つもの

2 つ目はhttps://webserver.domain.com/ userid / websitename (したがって、仮想ルート ~ は /userid/websitename)にあります。2 番目は、各 Web サイトの安全な側面に使用されます。

これにより、生成された css の Webresources.axd ファイルと、AJAX.net ツールキットの javascript のロードで問題が発生します。

これらの生成されたリソース ファイルへのパスを変更する方法はありますか。または、何らかの方法でアプリケーションごとに仮想ルート パスを設定します。

4

1 に答える 1

3

Render() メソッドを使用して URL パスを正しいパスに置き換えるという 1 つの解決策を見つけました。このフォーラムの投稿には、このソリューションに関する情報があります。Request.Url をチェックして、ページ リクエストの送信元ドメインを確認するように変更する必要があります。

protected override void Render(HtmlTextWriter writer)
{
     try
     {                  
          StringBuilder renderedOutput = new StringBuilder();    
          StringWriter strWriter = new StringWriter(renderedOutput);    
          HtmlTextWriter tWriter = new HtmlTextWriter(strWriter);    
          base.Render(tWriter);

          //this string is to be searched for src="/" mce_src="/" and replace it with correct src="./" mce_src="./". 

          string s = renderedOutput.ToString();
          s = Regex.Replace(s, "(?<=<img[^>]*)(src=\\\"/)", "src=\"./", RegexOptions.IgnoreCase);
          s = Regex.Replace(s, "(?<=<script[^>]*)(src=\\\"/)", "src=\"./", RegexOptions.IgnoreCase);
          s = Regex.Replace(s, "(?<=<a[^>]*)(href=\\\"/)", "href=\"./", RegexOptions.IgnoreCase);

          writer.Write(s);
      }
      catch
      {
      }
  }
}
于 2008-11-14T18:46:29.597 に答える