Настройте очистку кеша в 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.