gpt4 book ai didi

asp.net-mvc - CDN/子域、资源和版本控制

转载 作者:行者123 更新时间:2023-12-04 06:59:05 25 4
gpt4 key购买 nike

我希望调查/实现 CDN(最初只是通过子域,但及时转移到 CDN)并且我正在寻找讨论处理该子域上文件版本的资源。

我以前工作过的大多数地方都实现了资源(图像、javascript、css 等)的缓存,并且当想要更改图像时,经历了仅仅更改图像文件名并将引用更改为的痛苦过程它在源代码中(以便客户看到新的,而不是缓存的图像)。

我想达到什么

我想要的是:
资源.domain.com

带有子文件夹,例如:

  • 脚本/
  • 图片/
  • css/

  • 没问题,将有助于 yslow/页面速度得分(假设无 cookie 域等)

    但是 Assets 的版本控制是我想要解决的问题。

    例如。
    resources.domain.com/images/promo_banner1.jpg

    我可能必须每 10-15 天缓存和过期一次。

    假设我们有一些关键的东西作为业务请求进来,我们需要改变它,我希望能够覆盖它。据我了解,我可以向其附加一个查询字符串 (?1.1) 以强制浏览器将其视为不同的资源。

    我知道我可以在 MVC(或实际上是 ASP.NET)中通过创建一个'CompanyResource' html helper 来做到这一点,它会查找资源文件或类似的东西,看看我们是否有新版本,如果有,追加版本number 作为查询字符串元素,但必须有更好的方法吗?

    那么,社区提出了什么?
  • 如何最好地处理子域中的资源(假设我已经阅读了所有关于此的 yslow/google 备份文档)
  • 人们想出了什么来处理 Assets 的版本控制(以在某些更新时最小化整体代码更改)——基于代码的帮助方法来根据某些规则交付 Assets ?

  • 希望我没有胡说八道。

    感谢您的任何帮助:)

    干杯,
    特里

    最佳答案

    刚刚注意到这个问题没有得到回答 - 我们使用以下内容解决了在 ASP.NET MVC 下使用 Html 帮助程序的问题。

    在 web.config 中,我们存储了“resources_url”(在本例中为 resources.mycompany.co.uk),并调用了以下内容:

    <%= Html.MyCompanyResourceScript("~/scripts/jquery-1.4.2.min.js") %>

    转换为 Html 助手:
    public static string MycompanyResourceScript(this HtmlHelper helper, string url)
    {
    string _out = String.Format(@"<script type=""text/javascript"" src=""{0}""></script>", url.ToMyCompanyUrlAction(helper.ViewContext.HttpContext));
    return _out;
    }
    public static string ToMyCompanyUrlAction(this string url, HttpContextBase context)
    {
    return String.Format("{0}://{1}{2}",
    (context.Request.IsSecureConnection ? "https" : "http"),
    WebConfigurationManager.AppSettings["resources_url"],
    VirtualPathUtility.ToAbsolute(url, "/"));
    }

    我们还为 MyCompanyResourceImage 和 MyCompanyResourceCss 创建了助手,并为 alt 标签/媒体类型等设置了合适的参数。

    这意味着我们可以(从一开始)通过我们自己的资源域来托管,如果将来我们选择将其转移到 CDN,那么我们可以毫不费力地做到这一点。

    希望能帮助某人。

    干杯,
    特里

    关于asp.net-mvc - CDN/子域、资源和版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2171372/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com