Как поставить проект angular в продакшн? - PullRequest
2 голосов
/ 13 июля 2020

Это мой первый раз с Angular, и я пытаюсь поместить свой сайт в prod, но когда я захожу на сайт, я получаю только index. html с его CSS и без рендеринга. Когда я пытаюсь получить доступ к маршруту, например, website / home, я получаю сообщение об ошибке Not found ...

Я использую ng build --prod и помещаю содержимое dist в ecowebhosting

Я не Я не знаю, какую часть программы мне нужно разместить здесь, поэтому я сделал снимок экрана структуры:

Это мой серверный каталог

Это моя структура проекта

вот мой main.ts

import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app/app.module';
import { AccueilComponent } from './app/accueil/accueil.component';
import { NavBarComponent } from './app/nav-bar/nav-bar.component';
import { environment } from './environments/environment';

if (environment.production) {
  enableProdMode();
}

platformBrowserDynamic().bootstrapModule(AppModule)
  .catch(err => console.error(err));

Если вам нужно больше кода, спросите меня =)

Спасибо за помощь !!

1 Ответ

0 голосов
/ 13 июля 2020

Думаю, это проблема переписывания URL. Если ваш веб-сайт находится на сервере PHP, используйте файл .htaccess со следующей строкой текста

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]  

. Если ваш веб-сайт находится в системе windows, добавьте следующую строку кода в Интернет. файл конфигурации

<configuration>
<system.webServer>
    <rewrite>
        <rules>
            <rule name="Angular Routes" stopProcessing="true">
                <match url=".*" />
                <conditions logicalGrouping="MatchAll">
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="/" />
            </rule>
            
        </rules>
        <outboundRules>
            
        </outboundRules>
    </rewrite>
    <httpProtocol>
        <customHeaders>
            <add name="X-UA-Compatible" value="IE=Edge" />
        </customHeaders>
    </httpProtocol>
</system.webServer>
...