2014-01-08 3 views
6

Имеет ли MVC встроенный способ указания резервной копии CDN для таблиц стилей? Я пытаюсь настроить резервную копию таблицы стилей jQuery для мобильных устройств. Вот мой код в методе RegisterBundles:MVC резервная копия CDN для набора стилей

var JQMstyleSheet = new StyleBundle("~/JQMstyle", "http://code.jquery.com/mobile/1.3.1/jquery.mobile.structure-1.3.1.min.css").Include("~/theme/jquery.mobile.structure-1.3.1.css"); 
JQMstyleSheet.CdnFallbackExpression = "window.jQuery.mobile"; 
bundles.Add(JQMstyleSheet); 

Когда страница отображается выводит это в HTML:

<script> 
(window.jQuery.mobile)||document.write('<script src="/JQMstyle"><\/script>'); 
</script> 

Когда CDN не может его не динамически добавлять таблицы стилей, как это отлично подходит для файлов javascript. Я думаю, проблема в том, что она пытается отобразить сценарий, когда он должен быть стилем. Есть ли другое резервное свойство, отличное от CdnFallbackExpression?

UPDATE

Документы Microsoft для System.Web.Optimization.StyleBundle показывает CdnFallbackExpression как доступное жилье, однако в описании он говорит: «Получает расширение сценария, вынесенное класса Scripts хелперов ...» http://msdn.microsoft.com/en-us/library/system.web.optimization.stylebundle(v=vs.110).aspx Является ли это ошибка в System.Web.Optimization.StyleBundle? не должно ли это свойство ссылаться на вспомогательный класс Styles?

+0

'JQMstyleSheet.CdnFallbackExpression =" window.jQuery.mobile ";' почему вы это положили? – Amila

+0

Мне нужна таблица стилей для загрузки, если cdn терпит неудачу. проверка на window.jQuery.mobile скажет мне, если cdn-загрузка jquery mobile не удалась, тогда я знаю, что таблица стилей cdn download скорее всего тоже не удалась. Я не уверен, как проверить, существует ли таблица стилей с использованием CdnFallbackExpression. – Adrian

ответ

10

TLDR;

Проверьте мое решение, которое предоставляет метод расширения StyleBundle для решения проблемы.

Style Bundle Fallback

Также

Да, есть ошибка в оптимизации платформы Microsoft ASP.NET, документированы here.

Решение состоит в том, чтобы модифицировать CdnFallbackExpression как функцию javascript, которая проверяет таблицу стилей и загружает резервную копию, игнорируя при этом плохой скрипт из Оптимизационной структуры.

Есть несколько сложных частей, особенно проверка загрузки стилей, когда она поступает из другого домена, как и большинство источников CDN.

У меня есть решение на GitHub, которое вы можете использовать до тех пор, пока проблема не будет исправлена ​​в рамках; Тем не менее, я все равно буду следить за сложной частью определения того, когда таблица стилей загружена.

Смежные вопросы