6

在优化时从包中渲染样式时,您会得到以下信息:

<link href="/Content/themes/base/css?v=UM624qf1uFt8dYtiIV9PCmYhsyeewBIwY4Ob0i8OdW81" rel="stylesheet" type="text/css" />

不幸的是,Android 浏览器似乎没有加载带有查询字符串的 url。有什么方法可以在 System.Web.Optimization 中自定义这个字符串?


编辑:

我的问题得到了解答,我尝试在用户代理字符串上检测 android 并用一个查询字符串少的链接替换到样式表。显然我遇到的问题不是因为查询字符串,而是 webfont css 的缩小版本导致它无法在 Android 股票浏览器中完全加载样式表。

Android 股票浏览器无法加载带有转义反斜杠的 css 内容字符串,这是 ASP.NET 缩小器错误地缩小相同 css 内容字符串的一种解决方法。我最终将图标字体 css 样式放在它自己的“手工缩小”样式表上。

4

2 回答 2

9

您可以使用禁用缓存

@{string path = BundleTable.Bundles.ResolveBundleUrl("~/bundle/cssCommon", false);}
//may apply manual path transformation to remove ?v= anyway
<link href=@path rel="stylesheet" type="text/css" />

或简短的形式

<link href="@BundleTable.Bundles.ResolveBundleUrl("~/bundle/cssCustom", false)"

但是您将遇到与缓存相关的问题,而不是 android WebView 问题。另一种可能的方法是使用 Microsoft Ajax Minifier

于 2013-03-11T09:37:24.007 回答
4

不幸的是,我们目前不支持自定义版本字符串在 url 中的显示方式。

这是我们 codeplex 网站上问题的链接:Url version issue

同时,如果您愿意在每次更改捆绑包时手动修改捆绑包路径,您可以避免使用帮助程序,而只使用指向您每次捆绑包更改时更新的捆绑包的显式链接:

<link href="/Content/themes/base/css" rel="stylesheet">

或者您可以通过以下方式禁用客户端上的缓存bundle.Cacheability = HttpCacheability.NoCache

于 2013-03-11T20:41:15.907 回答