Angular - The requested URL /home wurde nicht auf diesem server
Ich bin gonna be sehr kurz.
Habe ich eine Eckige Projekt mit der einfachen navigation im Menü (routerLinks).
Alles funktioniert wie es soll, wenn es auf dem localhost, powered by Winkel-cli.
Aber wenn ich installieren Sie es auf einem echten server (ich habe kein VPS oder einen anderen server, nur Ordner, wo ich meine Dateien) komisch anfängt zu geschehen.
Die app funktioniert, die navigation ist funktional, routeLinks routing, aber wenn ich aktualisieren browser oder versuchen, etwas zu schreiben, manuell in die URL-Zeile, jedes mal bekomme ich 404 not found. (also ich bin in [domain]/home - alles ist ok, aber wenn ich aktualisieren browser, ich bekam 404 /home nicht gefunden.
Vielleicht bin ich für ein problem suchen, das in einem schlechten Platz und es ist nicht ein problem der Winkel aber über HTTP-requests (ich weiß nicht viel über es).
Haben Sie keine Ahnung, wo ich beginnen sollte?
Danke, Pavel F.
Projekt, was ich bin reden über: http://www.pavel-challenge.cz (Nein, dies ist keine Werbung 😀 )
app-routing.- Modul.ts
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { PassionsComponent } from './passions/passions.component';
import { QuestionComponent } from './question/question.component';
import { AboutComponent } from './about/about.component';
import { HomeComponent } from './home/home.component';
import { KnowledgeComponent } from './knowledge/knowledge.component';
const routes: Routes = [
{ path: '', redirectTo: '/home', pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
{ path: 'about', component: AboutComponent },
{ path: 'knowledge', component: KnowledgeComponent },
{ path: 'questions', component: QuestionComponent },
{ path: 'passions', component: PassionsComponent },
{ path: '**', redirectTo: '/home', pathMatch: 'full' }
];
@NgModule({
imports: [ RouterModule.forRoot(routes) ],
exports: [ RouterModule ]
})
export class AppRoutingModule {}
navbar.component.html
<ul>
<li><a routerLink="/about">About</a></li>
<li><a routerLink="/knowledge">Knowledge</a></li>
<li><a routerLink="/questions">Questions</a></li>
<li><a routerLink="/passions">Passions</a></li>
</ul>
- wo sind die codes?
- Ich bin nicht sicher, was genau sollte ich zu zeigen. Alles funktioniert, außer das problem, was ich beschrieben habe. Also, vielleicht das problem ist, etwas zu ignorieren, anstatt in schlechten Codierung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
BEHOBEN: (für Apache-HTTP-server)
ich erstellt .htaccess-Datei und legen Sie es in den root Ordner auf eine Anbieter-Seite.
RewriteRule . /myAngularApp/index.html [L]
. Aber noch kann ich nicht neu laden meiner Seite. Was ist falsch mit dem, was ich mache?.htaccess
- Datei in mein Projekt root-Ordner. Für Winkel-es ist der Unterordner desdist
Ordner.Ist die Sache in Ihrem HTTP-server-Konfiguration.
haben Sie alle, die die URL nach Ihren hostname verweist auf die HTML-Ressource einbinden Ihrer angular Anwendung.
wie in der NGINX :
hier ist die offizielle Dokumentation
während der Navigation nach der ersten Belastung, die Winkelgeschwindigkeit router die Führung übernehmen, und Anzeige der Daten nach Standort ändern sich dynamisch, ohne http-request.
Aber wenn Sie laden Sie direkt <...>/home http server sicherlich versuchen, eine Datei zu laden home.html und senden Sie dann einen 404.
Im Falle der Bereitstellung auf dem Apache aktivieren Sie das Modul mod_rewrite :
sudo a2enmod rewrite
Dann den Apache neu Starten , sudo systemctl restart apache2
Nach, die vorgeschlagenen änderungen in die .htaccess wie in der vorangegangenen Antwort
Check-out
Erklärt es, warum Sie Ihre Produktions-server muss konfiguriert werden und bietet eine ganze Reihe von Beispiel-Konfigurationen für den gemeinsamen Server.