404 ошибки в комплекте jQuery css, публикация VS2012 в Azure
У меня есть веб-сайт, который использует вещь jQuery datepicker (реализована в обычном шаблоне VS2012 MVC4). Он выглядит и отлично работает при работе на localhost. Но когда я публикую (в Azure), некоторые css отсутствуют. Инструменты Chrome dev показывают 404 ошибки в двух css-файлах:
http://cyclelog.azurewebsites.net/Content/jquery.ui.base.css http://cyclelog.azurewebsites.net/Content/jquery.ui.theme.css
Я заметил, что нет такие файлы в моем исходном дереве-скорее два файла находятся под ~/Content/themes/base (не непосредственно под Content/). Я не знал, что с этим делать, потому что, как я уже сказал, css отлично работает на localhost.
Я не изменил конфигурацию связывания, созданную в шаблоне по умолчанию. Или, скорее, я сделал это, но только в попытке решить проблему, которая не сработала. Я восстановил исходный код в инициализации пакета:
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/site.css",
"~/Content/themes/base/jquery.ui.all.css"));
bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
"~/Content/themes/base/jquery.ui.core.css",
"~/Content/themes/base/jquery.ui.resizable.css",
"~/Content/themes/base/jquery.ui.selectable.css",
"~/Content/themes/base/jquery.ui.accordion.css",
"~/Content/themes/base/jquery.ui.autocomplete.css",
"~/Content/themes/base/jquery.ui.button.css",
"~/Content/themes/base/jquery.ui.dialog.css",
"~/Content/themes/base/jquery.ui.slider.css",
"~/Content/themes/base/jquery.ui.tabs.css",
"~/Content/themes/base/jquery.ui.datepicker.css",
"~/Content/themes/base/jquery.ui.progressbar.css",
"~/Content/themes/base/jquery.ui.theme.css"));
какие идеи?
1 ответов
проблема включения "~/Content/themes/base/jquery.ui.all.css"
в первой пачке. Переместите этот файл во второй пакет, и он будет работать.
он работает локально, потому что локально связывание не происходит (при условии, что вы находитесь в режиме отладки). @Import в этом файле работает, потому что он ищет в правильном каталоге ("/Content/themes/base/"
), так как ссылка отображается в виде:
<link href="/Content/themes/base/jquery.ui.all.css" rel="stylesheet"/>
когда вы развертываете это, этот файл упаковывается в ~/Content/css
. Таблица стилей в комплекте и теперь отображается as:
<link href="/Content/css?v=IqLBj6MTQkC-CU1" rel="stylesheet"/>
Итак, теперь два оператора @import терпят неудачу, так как два файла не существуют в этом каталоге.
однако они существуют в "~/Content/themes/base/"
именно поэтому он будет работать во 2-м пакете, когда все будет в комплекте в режиме выпуска.
больше чтения с информацией о том, как вы можете реплицировать эту проблему локально:Скрипты.Рендеринг с использованием устаревшего файла javascript