所以我定义了一些路线/ home,/ contact,...
使用ng build --prod --base-href
创建dist文件夹,并通过filezilla将dist文件夹的内容复制到托管服务器。当直接浏览网站并从网站上重定向时没有问题,但如果您直接浏览到网站/主页,它会显示404 Not Found The requested URL /home was not found on this server
。
托管支持回复这些可能是我们无法支持的.htaccess文件中的CleanURL。
我认为干净的网址是可读的restcalls,但也许意义不仅仅是休息。但这有解决方案吗?
答案 0 :(得分:1)
您更有可能未在提供商中定义HashLocationStrategy(在app.module.ts中)
此处更新..我试图加入评论,但它无法格式化
有三种方法 第一路
@NgModule({
imports: [
BrowserModule,
FormsModule,..
RouterModule.forRoot(routes, { useHash: true })
],
declarations: [
AppComponent, ...
],
providers: [],
bootstrap: [ AppComponent ]
})
第二路
@NgModule({
declarations: [
AppComponent, ...
],
imports: [
AppRoutingModule,
BrowserModule,
BrowserAnimationsModule,
FormsModule,
HttpModule, ...
],
providers: [
{ provide: LocationStrategy, useClass: HashLocationStrategy }
],
entryComponents: [],
bootstrap: [AppComponent]
})
第三种方式 - 推荐用于Angular2 使用PathLocationStrategy
import {APP_BASE_HREF} from '@angular/common';
@NgModule({
providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]
})
有利有弊 - 我使用第二,因为我来自angular1,2,4,5(旧学校):p