3

私はWeb アプリでImageResizer.netを問題なく使用してきましたが、次のように、ファイル拡張子を持たない (または持たない) 画像のサイズを変更して提供する必要があります。

http://localhost:58306/ClientImages/Batch/2012/12/10/f45198b7c452466684a4079de8d5f85f?width=600

この状況では、ファイルが常に TIFF であることはわかっていますが、ファイル拡張子はありません。

私のオプションは何ですか?

/resizer.debug.ashx: https://gist.github.com/raw/9c867823c983f0e5be10/4db31cb21af8b9b36f0aa4e765f6f459ba4b309f/gistfile1.txt

アップデート

私はコンピューター言語学者の指示に従いました:

    protected void Application_Start()
    {
        Config.Current.Pipeline.PostAuthorizeRequestStart +=
            delegate
                {
                    var path = Config.Current.Pipeline.PreRewritePath;
                    var clientImgsRelPath = PathUtils.ResolveAppRelative("~/ClientImages/");
                    var isClientImageRequest = path.StartsWith(clientImgsRelPath, StringComparison.OrdinalIgnoreCase);

                    if (isClientImageRequest)
                        Config.Current.Pipeline.SkipFileTypeCheck = true;
                };


                // other app start code here
    }

http://localhost:58306/ClientImages/Batch/2012/12/10/92d67b45584144beb5f791aaaf760252?width=600サイズを変更せずに元の画像で応答するだけです。

これはここでも尋ねられました:http://imageresizing.net/docs/howto/cache-non-images#comment-571615564

これは、Cassini または Visual Studio Web サーバー、または任意の名前で開発中に発生します。

4

1 に答える 1

2

まず、IIS7統合モードを使用している必要があります。クラシックモードは機能しません。拡張機能のない要求へのASP.NETアクセスを許可しません

ImageResizerは、明示的に指定しない限り、拡張子のないURLが画像であることを認識できません。

このドキュメントの説明:

http://imageresizing.net/docs/howto/cache-non-images

基本的に、URLに対してロジック(通常はString.StartsWith)を実行して、ImageResizerがファイルを画像として処理する必要があるかどうかを確認します。

Config.Current.Pipeline.PostAuthorizeRequestStart += delegate(IHttpModule sender, HttpContext context) {
  string path = Config.Current.Pipeline.PreRewritePath;

  //Skip the file extension check for everything in this folder:
  if (path.StartsWith(PathUtils.ResolveAppRelative("~/folder/of/images"), 
        StringComparison.OrdinalIgnoreCase)){

        Config.Current.Pipeline.SkipFileTypeCheck = true; 
  }
};

このイベントハンドラーは、global.asaxのApplication_Startに登録する必要があります。

于 2013-01-17T22:34:51.060 に答える