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