[英]Angular 2 static page routing
我使用Angluar 2構建了一個靜態頁面,當我運行ng serve
並轉到我的頁面時,它會按我的意願運行。 我想要的意思是,它可以通過輸入URL進入特定頁面,例如www.mysite.com/resume
但是當我在執行ng build --prod
后將其上傳到我的網站時,我無法訪問www.mysite.com/resume
鍵入www.mysite.com/resume
,它顯示404 page not found
。
這是我的app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { RouterModule, Routes } from '@angular/router'
import { NgsRevealModule } from 'ng-scrollreveal';
import { AppComponent } from './app.component';
import { HomeComponent } from './components/home/home.component';
import { NavbarComponent } from './components/navbar/navbar.component';
import { ResumeComponent } from './components/resume/resume.component';
import { FooterComponent } from './components/footer/footer.component';
import { PortofolioComponent } from './components/portofolio/portofolio.component';
const appRoutes: Routes = [
{path:'', component: HomeComponent},
{path:'resume', component: ResumeComponent},
{path:'portofolio', component: PortofolioComponent},
{path:'**', component: HomeComponent}
]
@NgModule({
declarations: [
AppComponent,
HomeComponent,
NavbarComponent,
ResumeComponent,
FooterComponent,
PortofolioComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule.forRoot(appRoutes),
NgsRevealModule.forRoot()
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
這是我的app.component.html
<app-navbar></app-navbar>
<div class='container'>
<router-outlet></router-outlet>
</div>
<app-footer></app-footer>
在我的navbar.component.html
我有特定組件的按鈕,並且效果很好。
這是我的navbar.component.html
<div class="container">
<nav class="nav nav-tabs">
<div class="container" [ngsReveal]="{easing: 'cubic-bezier(0.6, 0.2, 0.1, 1)', duration : 2000, origin: 'top', distance : '80px'}">
<div class="navbar-header">
<a class="navbar-brand" href="/">mysite</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right item">
<li [routerLinkActive]="['active']" [routerLinkActiveOptions] = "{exact:true}"><a [routerLink]="['/resume']">Resume</a></li>
<li [routerLinkActive]="['active']" [routerLinkActiveOptions] = "{exact:true}"><a [routerLink]="['/portofolio']">Portofolio</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
</div>
我真正想要的是我可以像輸入ng serve
時一樣鍵入特定的地址
我之前遇到過這個問題,我認為情況相同:
如果您使用的是Nginx Web服務器,請確保您有正確的規則將任何URL重定向到index.html,例如:
location / {
# try_files $uri @rewrite;
try_files $uri /index.html?$query_string;
}
對於Apache,我並沒有真正測試過,但我認為情況相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.