Не удается развернуть Angular 4 в производственном режиме на работающем сервере - PullRequest
0 голосов
/ 06 мая 2018

я пробовал этот ответ и может подтвердить, что mod_rewrite включен на моем хостинге

И я попробовал следующие конфигурации .htaccess с разных ответов и сайтов, но ни один не помог. Я не могу отладить, где проблема.

С официального сайта :

RewriteEngine On
    # If an existing asset or directory is requested go to it as it is
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
    RewriteRule ^ - [L]
    # If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html

Из какой-то сущности

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

И многие другие, но все дают 404 ошибки. Любой способ отладки. Я использую ng build --prod для создания dist, а затем хостинг на dev.example.com и пытаюсь получить доступ к dev.example.com/home, который доступен при доступе с dev.example.com Может ли это быть связано с поддоменом?

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

Я подтверждаю, что это не проблема субдомена. Попробовав тонну .htacess файлов, которые мне удалось найти RewriteBase, добавьте его к базовому пути, как предположим, что ваш базовый путь равен /dev/ Добавьте Rewritebase /dev/ и не забудьте добавить Options Indexes FollowSymLinks.

<IfModule mod_rewrite.c>
  Options Indexes FollowSymLinks
  RewriteEngine On
  RewriteBase / 
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

Если вы столкнулись с проблемой с basepath, посмотрите этот вопрос Angular 2 маршрутизация и прямой доступ к определенному маршруту: как настроить Apache? и этот ответ https://stackoverflow.com/a/36590784/6517383 Наверняка они исправят вашу проблему с развертыванием на сервере Apache

0 голосов
/ 15 июля 2019

Мне не хватало httpd.conf, AllowOverride All по моему каталогу

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
0 голосов
/ 06 мая 2018

Попробуйте эту конфигурацию:

 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
    RewriteRule ^ index.html [L]
...