Обзор:
У меня есть приложение AngularJS, которое использует $locationProvider.html5Mode(true)
, и оно обслуживается с сервера Apache. До сих пор я использовал исходный код для доступа из других, и мне просто нужно было перенаправить на index.html для режима angularJS HTML5. Поэтому у меня было это для файла .htaccess
для моей папки /app
.
.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
# Don't rewrite files or directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Rewrite everything else to index.html to allow html5 state links
RewriteRule ^ index.html [L]
</IfModule>
Модификации:
Затем я добавил Grunt для минимизации всего решения, которое создается в папке /dist
приложения (так что теперь миниатюрное решение найдено в /app/dist ). Теперь я хотел бы направить весь трафик моего приложения на мини-версию, не заставляя пользователей изменять ссылку. Поэтому на практике я хотел бы перенаправить каждый вызов из /app в/app/dist.
Структура каталога теперь:
app
dist
minified versions(css,html,js)
Я попытался использовать некоторые условия из здесь в /app.htaccess и перенес другой файл .htaccess в /app/dist, но без успеха. Я даже не знаю, могут ли эти два сочетаться. Я знаю, что вместо этого могу использовать папку dist в качестве /app, но я бы этого не хотел, поскольку /app является репо, и проще обновить его. Итак, как я могу добиться этого с помощью перенаправления?
Кроме того, во-вторых, можно ли каким-то образом поставить флаг, чтобы я мог использовать альфа-пользователей для нормальной отладки обычной (не минированной) версии?
Update:
Я добавил пример проекта для здесь. Я просто сохранил начальные файлы .htaccess, которые я показал выше, и вы можете проверить, что обе версии (/test
и /test/dist
) работают, как указано выше. Кроме того, у него, вероятно, есть неиспользованный код и зависимости, но я просто вырезал другие части из моего проекта (не судите: D).
Для этого я использовал начальную конфигурацию с AngularJS 1.4.8, которая могла бы генерировать некоторые ошибки, например, указанные здесь и здесь. Не стесняйтесь обновлять версию AngularJS до 1.5.8 (последняя стабильная версия Angular 1), но обратите внимание на комментарии Cosmin Ababei post. Кроме того, в проекте используется npm для установки grunt (и других расширений для grunt), bower для Angular и некоторых других базовых компонентов и ворчания для создания мини-версии (на самом деле, она просто конкатенация ресурсов в одних и тех же файлах). Если вам нужно изменить зависимости, не забудьте запустить bower install
. Если вы хотите восстановить папку dist, не забудьте запустить npm install
и grunt build
.