Несколько дней назад я включил режим html 5 в своем приложении angular (1.5.8) с этим кодом:
$locationProvider.html5Mode({enabled:true,requireBase:true}).hashPrefix('!');
Позже я прочитал Настройка сервера Apache для режима html5 с помощью ui-router .
После выполнения этих настроек я сталкиваюсь с 2 проблемами:
- Перезагрузка браузера, перенаправляет на домашнюю страницу для каждой глубоко вложенной ссылки приложения.
- Любая ссылка, поступающая извне (по электронной почте), всегда перенаправляет на домашнюю страницу.
Я играл с
- mod_rewrite as-in с использованием
<Directory>
, FallbackResource
на apache.
- изменение путей к ресурсам в index.html (с использованием относительного URI и полного квалифицированного URI)
- добавление / удаление тега base HTML. (пробовать такие опции, как '/', '
<sitename>
')
Но мне еще предстоит преодолеть эти проблемы.
Вот подробные настройки на моем локальном хосте:
- Я развертываю на apache через виртуальный хост (а не .htaccess).
- Мой каталог развертывания: / Users /
<name>
/ Sites / <sitename>
(я в Mac OS)
Мой index.html состоит из следующих частей:
<head>
<base href="/">
<!-- SPELLS 1-->
<script src="/js/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
<script src="/js/angular.min.js"></script>
<!-- more scripts / css et al -->
</head>
Моя конфигурация Apache (2.4.28) выглядит следующим образом:
<VirtualHost *:80>
ServerName <servername>
DocumentRoot "/Users/<name>/Sites/<sitename>"
#LogLevel debug
LogLevel debug rewrite:trace6
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]
RewriteRule ^ index.html [L]
Options Indexes FollowSymLinks
Require all granted
</VirtualHost>
Может кто-нибудь помочь мне с точной настройкой?