【问题标题】:Modify Urls in aspx page修改aspx页面中的Urls
【发布时间】:2013-02-20 06:31:41
【问题描述】:

有没有办法在我的 webforms aspx 页面中修改所有指向 js 和 css 文件的链接,而无需调用辅助函数?

我想写一个网址:
FROM ...../Scripts/file.js
TO ...../Scripts /634969723944992444/file.js

我可以这样做:

<script type="text/javascript" src="<%=Url.Helper(@"Scripts/file.js")%>"></script>

帮助函数将文件的最后修改时间包含在 url 中。

有没有一种简单的方法可以在不使用此类辅助功能的情况下修改我所有页面上的网址?

谢谢

【问题讨论】:

  • 你想通过添加最后修改时间来完成什么?
  • 我只想实现 js 和 css 文件的自动版本控制,以便浏览器始终获取最新文件,但仍会缓存文件直到它们发生变化。

标签: c# asp.net url url-rewriting webforms


【解决方案1】:

老实说,我认为你最好的选择是放弃你的努力,只使用Bundling and Minification

除了捆绑(减少 HTTP 请求的数量)和缩小(减少文件大小)之外,它还会自动对您的捆绑包进行版本控制(使用查询字符串),确保浏览器在您的任何脚本或样式中始终获得最新版本换床单。

如果您使用的是 ASP.NET 4.5,则您已经可以访问此功能。对于旧版本,您可以通过NuGet 安装。

其他有用的链接: Adding Bundling and Minification to Web Forms

【讨论】:

    【解决方案2】:

    您可以编写一个 HTTPModule 来执行此操作。您也可以改为在路径中放置时间,只需使用查询字符串来标记更新

    file.js?v=1 文件.js?v=2 文件.js?v=3 等等

    【讨论】:

    • 如果我使用查询字符串,我认为浏览器永远不会缓存文件。
    • 当然会,直到您更改 QS 值,这就是查询字符串的重点。
    • 我不确定,但网络上不推荐使用查询字符串方法。 derek.io/blog/2009/auto-versioning-javascript-and-css-files
    • @Harish 那家伙错了。 QueryString 方法是完全可以接受的版本化方法。如果不是这样,那么基本上任何使用 QueryString 动态加载数据的页面都会被破坏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多