Настройте очистку кеша в system.web.optimization

При рендеринге стилей из комплектов при включенной оптимизации вы получаете следующее:

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

К сожалению, браузер Android не загружает URL-адреса со строками запроса. Есть ли способ настроить эту строку в System.Web.Optimization?


Редактировать:

На мой вопрос ответили, и я попытался обнаружить андроида в строке пользовательского агента и заменить на строку запроса без ссылки на таблицу стилей. Видимо, проблема у меня возникла не из-за строки запроса, это была минимизированная версия webfont css, из-за которой он не загружал таблицу стилей полностью в браузер Android.

Браузер Android не может загрузить строку содержимого css с экранированной обратной косой чертой, что было обходным решением для миниатора ASP.NET, который ошибочно минимизирует ту же строку содержимого css. Я закончил тем, что поместил стили CSS значка шрифта в его собственную таблицу стилей "минимизировано от руки".

2 ответа

Решение

В настоящее время, к сожалению, мы не поддерживаем настройку отображения строки версии в URL.

Это ссылка на проблему на нашем сайте codeplex: проблема с версией URL

В то же время, если вы хотите вручную изменять путь пакета каждый раз, когда вы меняете пакет, вы можете просто избегать использования помощников и просто иметь явные ссылки на свои пакеты, которые вы обновляете при каждом изменении пакета:

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

Или вы можете отключить кеширование на клиенте через bundle.Cacheability = HttpCacheability.NoCache

Вы можете отключить кеширование с помощью

@{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.

Другие вопросы по тегам