使用 Imageresizer 在 Azure 上提供 .js 和 html5 以及其他文件类型
Serving .js and html5 and other file type on Azure with Imageresizer
我们在尝试通过服务于 Azure 应用程序 运行ning imageresizer 的 .js 和 .html5 文件时遇到问题,后者又指向 blob 存储。
这个有效:
http://devimageresizecdnbypass.reiwa.net//bannerads/10688-0/test-image.jpg
这不是:
http://devimageresizecdnbypass.reiwa.net/bannerads/10688-0/js_ex3.js
直接链接到 blob 存储从而绕过 imageresizer 工作。
我在 web.config 中重写以添加图像文件 'folder'。
<rule name="bannerads">
<match url="^bannerads/([_0-9a-z-.]+)/([_ ,0-9a-z-.]+)" />
<action type="Rewrite" url="/imagefiles/bannerads/{R:1}/{ToLower:{R:2}}" />
</rule>
除其他条目外,还有以下 -
<staticContent>
<remove fileExtension=".pdf" />
<mimeMap fileExtension=".pdf" mimeType="application/pdf" />
<remove fileExtension=".js" />
<mimeMap fileExtension=".js" mimeType="application/x-javascript" />
</staticContent>
通过 Microsoft 对其进行诊断,他们认为 imageresizer 不会在请求非 jpg 文件时将 blob URL 预先添加到传回 Azure 的请求中。
我们目前 运行 本地 Windows 2008r2/iis 机器上的 imageresizer,这些文件运行良好。
ImageResizer 并非设计为静态文件代理。
尽管有一些技巧可以使它作为一个整体,但它的性能不会那么好,并且缺少许多您可能期望作为静态文件代理的功能。
如果可能,我们建议直接链接到 blob 存储或静态文件的 CDN 端点。
如果您想尝试让 ImageResizer 代理这些文件,您需要配置存储提供商以允许这样做。
https://imageresizing.net/docs/v4/plugins/blobprovider
相关设置为:vpp="true", untrustedData="false", cacheUnmodifiedFiles="true", requireImageExtension="false".
您会对更新有额外的担忧 - cacheMetadata
的滑动行为对图像有利,但对即时 javascript 更新不利。您还会看到磁盘缓存增长增加。
AzureReader2 与其他提供商不同,还提供了 redirectToBlobIfUnmodified
设置。如果为真,并且如果内部重写的查询字符串缺少任何处理指令,则会启动重定向。在 PostRewrite 事件处理程序中检查 e.Querystring
的状态可以提供有关配置或组件是否导致先决条件失败的见解。
不幸的是,没有诊断页面,大部分都是推测。在这种情况下,版本、配置和自定义代码非常重要。创建一个空项目来测试静态文件代理行为可能会帮助您隔离问题,但如果可能,请更新此问题并提供更多详细信息和您的发现。
我们在尝试通过服务于 Azure 应用程序 运行ning imageresizer 的 .js 和 .html5 文件时遇到问题,后者又指向 blob 存储。
这个有效:
http://devimageresizecdnbypass.reiwa.net//bannerads/10688-0/test-image.jpg
这不是:
http://devimageresizecdnbypass.reiwa.net/bannerads/10688-0/js_ex3.js
直接链接到 blob 存储从而绕过 imageresizer 工作。
我在 web.config 中重写以添加图像文件 'folder'。
<rule name="bannerads">
<match url="^bannerads/([_0-9a-z-.]+)/([_ ,0-9a-z-.]+)" />
<action type="Rewrite" url="/imagefiles/bannerads/{R:1}/{ToLower:{R:2}}" />
</rule>
除其他条目外,还有以下 -
<staticContent>
<remove fileExtension=".pdf" />
<mimeMap fileExtension=".pdf" mimeType="application/pdf" />
<remove fileExtension=".js" />
<mimeMap fileExtension=".js" mimeType="application/x-javascript" />
</staticContent>
通过 Microsoft 对其进行诊断,他们认为 imageresizer 不会在请求非 jpg 文件时将 blob URL 预先添加到传回 Azure 的请求中。
我们目前 运行 本地 Windows 2008r2/iis 机器上的 imageresizer,这些文件运行良好。
ImageResizer 并非设计为静态文件代理。 尽管有一些技巧可以使它作为一个整体,但它的性能不会那么好,并且缺少许多您可能期望作为静态文件代理的功能。
如果可能,我们建议直接链接到 blob 存储或静态文件的 CDN 端点。
如果您想尝试让 ImageResizer 代理这些文件,您需要配置存储提供商以允许这样做。
https://imageresizing.net/docs/v4/plugins/blobprovider
相关设置为:vpp="true", untrustedData="false", cacheUnmodifiedFiles="true", requireImageExtension="false".
您会对更新有额外的担忧 - cacheMetadata
的滑动行为对图像有利,但对即时 javascript 更新不利。您还会看到磁盘缓存增长增加。
AzureReader2 与其他提供商不同,还提供了 redirectToBlobIfUnmodified
设置。如果为真,并且如果内部重写的查询字符串缺少任何处理指令,则会启动重定向。在 PostRewrite 事件处理程序中检查 e.Querystring
的状态可以提供有关配置或组件是否导致先决条件失败的见解。
不幸的是,没有诊断页面,大部分都是推测。在这种情况下,版本、配置和自定义代码非常重要。创建一个空项目来测试静态文件代理行为可能会帮助您隔离问题,但如果可能,请更新此问题并提供更多详细信息和您的发现。