2016-03-21 4 views
1

У меня есть веб-сайт, сделанный в Umbraco, подключенный к Visual Studio 2012. Когда я запускаю проект (F5), он выглядит так, как это должно быть с CSS и jQuery. В этом проекте мы используем связки.Публикация сайта Umbraco, пакеты не работает

Когда я публикую свой сайт, связки не могут быть найдены.
«Не удалось загрузить ресурс: сервер ответил статусом 404 (не найдено) http://mywebsite.local/bundles/styles« Когда я смотрю в консоли (в моем браузере), я могу найти папки и стиль файла. Но он пуст.
Но на локальном сайте есть CSS в файле стиля.

Что я делаю неправильно? Я имею в виду, что это тот же код? Это похоже на то, что половина моего кода просто исчезает. Я также использую Optimus в качестве пакета для Umbraco, но это, похоже, не имеет никакого значения.

Вот мой BundleConfig:

public static void RegisterBundles(BundleCollection bundles) 
    { 
     bundles.Add(new StyleBundle("~/bundles/custom/css").Include(
      "~/css/MasterStyle.css", 
      "~/css/TopMenu.css", 
      "~/css/SmallImages.css", 
      "~/css/SideMenu.css", 
      "~/css/Footer.css", 
      "~/css/Support.css", 
      "~/css/Highlight.css")); 

     bundles.Add(new ScriptBundle("~/bundles/js/jquery").Include(
      "~/scripts/jquery-{version}.js", 
      "~/scripts/jquery-ui-{version}.js")); 

     bundles.Add(new ScriptBundle("~/bundles/bootstrap/js").Include(
      "~/scripts/bootstrap.js" 
      )); 

     bundles.Add(new ScriptBundle("~/bundles/js").Include(
      "~/scripts/TopMenu.js", 
      "~/scripts/Master.js")); 


     LogHelper.Info<string>("Bundles Loaded"); 

     //Comment this out to control this setting via web.config compilation debug attribute 
     BundleTable.EnableOptimizations = true; 
    } 

Мой global.asax (я не написал это, и, безусловно, не уверен, если это правильно)

<script runat="server"> 
void Application_Start() 
{ 
    BundleConfig.RegisterBundles(BundleTable.Bundles); 
} 

    </script> 

UPDATE: Проверить правильный ответ, я решил его, следуя этому учебнику и использовал код, который был опубликован в ответе. Я также заметил незначительную ошибку в моем файле bundle.config (который я проверил раньше, так что это не основная проблема). В моем «bundles.Add» (новый стильBundle («~/bundles/custom/css») «У меня неправильный путь, для меня это должно быть« ~/bundles/styles ». И комбинация всего этого сделала ! работать

+0

Это веб-приложение или проект веб-сайта? Как вы публикуете сайт? Если веб-приложение - все файлы, которые вы хотите развернуть, включены в ваш проект? – wingyip

+0

Это проект веб-сайта. Я использую Visual Studios для публикации веб-мастера, чтобы опубликовать его. – MissAndersson

ответ

2

Предполагая, что вы используете Umbraco 6 или 7, вы могли бы следовать суть здесь: How to use ASP.NET Bundling and Minifications in Umbraco

Однако, вы должны использовать ApplicationEventHandler производный класс, так что вы можете зарегистрировать их на старте вместо того, чтобы пытаться создать ваш собственный класс Global.asax.cs (теперь это рекомендуемый способ делать такого рода вещи с Umbraco):

public class ArticleEventHandler : Umbraco.Core.ApplicationEventHandler 
{ 
    protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext) 
    { 
     BundleConfig.RegisterBundles(BundleTable.Bundles); 
    } 
} 

Альтернативой Bundling является использование пакета ClientDependency, поставляемого вместе с Umbraco. Я могу подробно остановиться на этом, если вам нужно, но есть много примеров и документации по этому поводу.

+0

О, я забыл упомянуть об этом. Я использую Umbraco 7. Я следовал за ним, но это дало мне тот же результат, что и раньше. Я также использовал applicationEventhandler вместо создания нового global.asax.cs Благодарим за информацию. Я посмотрю на ClientDependency немного больше. – MissAndersson

+0

Я решил! Я обновил свой пост, если кто-то хочет знать, как я это сделал. Большое вам спасибо, Роберт. – MissAndersson

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