2013-07-26 2 views
0

Я создаю приложение MVC, размещенное другим хостинговым решением MVC. DLL из клиентского приложения копируется в папку bin приложения для хостинга. Представления, Представления/Общие, Сценарии, Контент ... все также скопированы в проект хостинга. В решении хостинга я создал область, которая будет служить базой для любого из клиентских приложений и динамически создает маршруты к просмотру с помощью процедуры разогрева. Эта часть отлично работает.Render Script bundle из другого приложения

Однако мои пакеты javascript не отображаются так, как я надеюсь, я считаю, что это потому, что они не найдены. В этом клиентском приложении у меня есть два JS-файла ... для простоты, javascript1.js и javascript2.js. Они находятся в моей папке Scripts моего клиентского приложения: C:\MyClientApp\Scripts\*.js. После компиляции событие post build копирует файлы в решение Hosting: C:\MyHostingApp\Scripts\MyClientApp\*.js.

В запуске приложения (также выполняется в процедуре прогрева), моя пачка постройки:

[assembly: WebActivatorEx.PostApplicationStartMethod(typeof(MyClientApp.AppStart), "Start")] 

namespace MyClientApp 
{ 
    public static class AppStart 
    { 
     public static void Start() 
     { 
      ConfigureBundles(); 
     } 

     private static void ConfigureBundles() 
     { 
      var bundle = new ScriptBundle("~/MyClientApp/Js") 
       .Include("~/Scripts/javascript1.js") 
       .Include("~/Scripts/javascript2.js"); 

      BundleTable.Bundles.Add(bundle); 
     } 
    }  
} 

На мой взгляд, я хотел бы назвать @Scripts.Render("~/MyClientApp/Js"). Это не работает, но ничего не отображается. Мое предположение заключается в том, что он ищет этот пакет под корнем приложения, а не под MyClientApp. В попытке правильно найти пакет, я попробовал написать расширение HtmlHelper для решения пакета ... хотя лучшее, что я мог бы сделать, это разрешить имя пакета в моем источнике, и в конечном итоге казалось, что должно быть проще способ сделать это. Любые идеи о том, как сделать эти пакеты? Есть ли что-то, что я могу сделать с механизмом маршрутизации, сопоставимым с представлениями для поиска файлов JS (и в конечном итоге css)?

Спасибо!

ответ

2

В настоящее время Bundling использует VirtualPathProvider для поиска файлов для пакетов. Встроенный VirtualPathProvider знает только файлы в приложении. Если вы хотите иметь возможность ссылаться на файлы вне приложения, вы можете попробовать реализовать свой собственный VPP, который может извлекать файлы за пределы приложения.

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