2015-10-31 3 views
1

Я использую технологию SPA с использованием AngularJS в среде ASP.NET MVC, маршрутизация AngularJS между страницами работает нормально, когда она запускается из VS2013, но после размещения приложения в IIS8 .5 маршрутизация не работает.Угловой Js SPA не работает после публикации в IIS 8.5

Когда я запустить приложение с помощью IIS выразить URL был http://localhost:12345/#/home После публикации http://localhost/myapp/#/home

Вот мой app.js,

$routeProvider.when("/home", { 
     controller: "homeController", 
     templateUrl: "/app/views/home.html" 
    }); 

В index.html

<li> <a href="#/home">Home</a></li> 

Когда я опубликовать мое приложение в windows azure, приложение работает нормально. Потому что url был myapp.azurewebsite.net. myapp.azurewebsite.net/#/home

Как я могу разместить аналогично в локальных IIS.

ответ

1

Вы почти найдете ответ: все это касается абсолютного пути к файлу.

Быстрое исправление:

Изменение templateUrl: "/app/views/home.html" в templateUrl: "app/views/home.html" (удалить заголовок слэш)

Ответ:

Если указать templateUrl в /app/views/home.html, который начинается с /, вы сообщаете браузеру, чтобы получить это от корня.

Если ваш webapp хранится в http://localhost/myapp/, ваш браузер посетит http://localhost/app/views/home.html, чтобы получить шаблон.

Это также объясняет, почему ваше приложение прекрасно работает, когда оно находится в корневом каталоге, но не работает в подкаталогах, например http://localhost/myapp/#/home.

Не беспокойтесь о побочном эффекте относительного пути. Все ресурсы вычисляются относительно index.html.

+0

Превосходно. После удаления/работы отлично :). Также для изображений ... некоторые из них работают. для изображений я использовал ленивую функцию загрузки ... bn-lazy-src [http://www.bennadel.com/blog/2498-lazy-loading-image-with-angularjs.htm]. для этого типа img ... снова та же проблема. Всегда показывать изображение по умолчанию .. хотя изображение существует. Можете ли вы предложить ... Измените мой вопрос. добавлено изображение. –

+0

@PrasadKanaparthi Эти изображения хранятся вне каталога углов? Если это так, путь изображения не имеет отношения к угловому пути, и они загружаются на некоторые бэкэнды? вы можете использовать абсолютный путь для этих файлов. и сохранить базовый путь изображений изображений с использованием угловой 'константы', чтобы указать каталог хранения изображений в бэкэнде. – Laohyx