2016-11-17 8 views
3

Я добавил загрузочные файлы CSS через StyleBundle в мой проект asp.net mvc 5.asp.net mvc 5 - Вопросы, связанные с StyleBundle CdnFallbackExpression?

(Он использует в качестве канадских: https://www.asp.net/ajax/cdn#Bootstrap_Releases_on_the_CDN_14)

var bootstrapCssCdnPath = "http://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css"; 
    var bootstrapCssBundle = new StyleBundle("~/bundles/css/bootstrap", bootstrapCssCdnPath).Include("~/Content/bootstrap.css"); 
    //bootstrapCssBundle.CdnFallbackExpression // ? 
    bundles.Add(bootstrapCssBundle); 

    var bootstrapThemeCssCdnPath = "http://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap-theme.min.css"; 
    var bootstrapThemeCssBundle = new StyleBundle("~/bundles/css/bootstraptheme", bootstrapThemeCssCdnPath).Include("~/Content/bootstrap-theme.css"); 
    //bootstrapCssBundle.CdnFallbackExpression // ? 
    bundles.Add(bootstrapThemeCssBundle); 

Однако есть проблема: когда я добавляю неверный URL, как CDN (например, добавление 'ahttp' вместо 'HTTP') мой заказ "запасной вариант" Файл css не используется, вместо этого он показывает «ahttp: //» в моем источнике HTML. То же самое, когда я запускаю свой сайт в Debug или Release.

  1. Почему мой запасной не используется?
  2. Что такое CdnFallbackExpression для StyleBundle? (и, в частности, для bootstrap.css и bootstrap-theme.css)
  3. Если .Include - файл .min.css или он автоматически выполняет поиск .min. сначала?
  4. Есть ли способ. Включить несколько файлов css, используя Cdn с резервным, так что мне не нужно создавать новый StyleBundle каждый раз за каждый файл css, который использует Cdn?

ответ

6

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

2) Решение изменить CdnFallbackExpression быть Javascript функции, что и проверяет таблицу стилей и загружает запасной вариант, таким образом, не обращая внимания на плохой сценарий из рамок оптимизации.

Это решение, которое предоставляет метод расширения StyleBundle, чтобы решить проблему: Style Bundle Fallback.

3) Должна быть версия без предупреждения, например bootstrap.css (не bootstrap.min.css). Когда вы создаете свое веб-приложение для выпуска, оно использует версию .min. Подробнее здесь: Bundler not including .min files.

4) Нет, вы не можете использовать несколько файлов CSS с CDN (каждый из них должен иметь свой собственный комплект). Вот статья, в которой объясняется, когда использовать CDN (или нет) и почему: Know When To CDN.