Развернуть угловое приложение в папке apache - PullRequest
2 голосов
/ 25 марта 2019

У меня есть сервер Apache, на котором запущено приложение Angular 6 под /var/www/html/<angular_root>. Я пытался добавить одну папку /var/www/html/admin/<angular_root>, но получаю ошибки Failed to load resource: the server responded with a status of 404 (Not Found). Вы знаете, какую конфигурацию мне нужно реализовать?

Моя текущая конфигурация apache:

<Directory /var/www/html/admin>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Ответы [ 4 ]

3 голосов
/ 28 марта 2019

Вот мой рабочий пример:

<VirtualHost fancy.local:80>
    DocumentRoot "/abs/path/to/fancy/dist/browser"
    ServerName fancy.local
    <Directory "/abs/path/to/fancy/dist/browser">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Где dist/browser - сгенерированные источники с index.html

2 голосов
/ 02 апреля 2019

Вам необходимо добавить правила перезаписи в .htaccess. В противном случае запросы к вашим маршрутам не будут перенаправлены обратно на index.html для рендеринга. Посмотрите на следующую ссылку для Развертывание Apache: https://angular.io/guide/deployment

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
1 голос
/ 03 апреля 2019

Один из моих проектов, который был на tomcat сервере, я сделал следующее:

  1. Создайте новую папку внутри src/WEB-INF.
  2. Внутри WEB-INF папкисоздайте web.xml с кодом ниже.
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <error-page>
        <error-code>404</error-code>
        <location>/</location>
    </error-page>
</web-app>

  1. Обновите раздел angular.json build> assets, когда вы создаете проект, он будет скопирован в окончательную папку ./dist.
"assets": [
              {
                "input": "src/assets",
                "output": "/assets/"
              },
              "src/favicon.ico",
              "src/WEB-INF"
    ],
Обновите index.html файл <base href="./">

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 01 апреля 2019

Ваш угловой проект (s base href неверен. При развертывании приложения укажите base-href в командной строке:

ng build --prod --base-href ./

для справки https://angular.io/guide/deployment

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...