我们即将将 .NET Web 应用程序部署到 Azure Web 角色。我只是想知道其他人如何处理他们的静态内容,特别是图像和 css?目前我们的应用程序包大约 25mb,但其中 18mb 完全来自图像,例如导航按钮、图标和模板组件等很少更新的东西。将其从部署包中分区并将其移至 blob 存储是否明智?
我对这种方法有一些疑问,我想知道它们是否有效......
我们网站的 80% 运行在 HTTPS 环境中。访问 blob 存储中的图像会引入跨脚本问题吗?
如果有人试图恶意破坏我们的图像(大多数小于 20kb),是否存在资金泄露漏洞?
我正在努力了解如何使用目录命名约定将文件上传到 blob 容器(来自 VS2010 + Azure SDK),所以我不需要重写 1000 个路径引用?我很欣赏目录是 blob 容器中的一个抽象概念,但我可以用正斜杠编写文件以在代码中模仿这一点。显然,在我上传到 Visual Studio 之前,Windows 不允许我这样做。
欢迎任何想法或替代策略。真正的目标是缩小我们的部署包以加快部署时间。我也很喜欢将图像服务卸载到专用节点以提高 Web 服务器性能的想法,也许我的图像集合太小以至于几乎不值得打扰?
5 月 16 日更新 ----------------------------------------------- -------------------------
这是我最后所做的:
1.将所有图像+ css转移到blob存储容器。我维护了 images 和 css 文件夹中所有子目录的结构。
2.在我们的 web.config 文件中应用 URL 重写规则,如下所示。
<rewrite>
<rules>
<rule name="imagestoazure">
<match url="images/(.*)" />
<action type="Redirect" url="https://xxxxx.vo.msecnd.net/images/{R:1}" />
</rule>
</rules>
</rewrite>
3.从应用程序中排除图像+ css文件夹并部署。
我的部署现在要小得多,并且图像在 CDN 上运行,从而释放了带宽、提高了下载速度并释放了 Web 服务器的一些负载。
更新:2015 年 9 月
最近在查看此内容时,我遇到了 Microsoft 提供的以下指南。它更详细地介绍了如何使用查询字符串自动部署资产和缓存崩溃。