亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

角2:404錯誤當我通過瀏覽器刷新時

角2:404錯誤當我通過瀏覽器刷新時

精慕HU 2019-07-06 14:54:44
角2:404錯誤當我通過瀏覽器刷新時我剛接觸到角2,我已經將我的單頁應用程序存儲在我的服務器中,在一個名為“myapp”的文件夾中。我已將基中的URL更改為http://example.com/myapp/`.我的項目有兩頁。所以我實現了角2路由。我將默認頁面設置為登錄。當我打字時http://example.com/myapp/在我的瀏覽器中,它將自動重定向到http://example.com/myapp/login..但是如果刷新頁面,我會得到一個404錯誤,說http://example.com/myapp/login找不到。但是如果我使用Lite服務器運行我的項目,一切都正常。在本例中,index.html中的URL將是"/"..怎么解決呢?
查看完整描述

3 回答

?
慕后森

TA貢獻1802條經驗 獲得超5個贊

事實上,刷新應用程序時出現404錯誤是正常的,因為瀏覽器中的實際地址正在更新(而且沒有#/hashbang方法)。默認情況下,HTML 5歷史記錄用于Angular 2中的重用。

若要修復404錯誤,需要更新服務器以服務于index.html您定義的每個路由路徑的文件。

如果要切換到HashBang方法,則需要使用以下配置:

import {bootstrap} from 'angular2/platform/browser';import {provide} from 'angular2/core';import {ROUTER_PROVIDERS} 
from 'angular2/router';import {LocationStrategy, HashLocationStrategy} from '@angular/common';import {MyApp} from 
'./myapp';bootstrap(MyApp, [
  ROUTER_PROVIDERS,
  {provide: LocationStrategy, useClass: HashLocationStrategy}]);

在這種情況下,當您刷新頁面時,它將再次顯示(但您將有一個#在你的地址)。

這個鏈接也可以幫助您:當我刷新我的網站,我得到404。這是Angular 2和Firebase.

希望它能幫到你,蒂埃里


查看完整回答
反對 回復 2019-07-06
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

更新為角2終版本

在app.module.ts中:

  • 增加進口:

    import { HashLocationStrategy, LocationStrategy } from '@angular/common';
  • 在NgModule Provider中添加:

    {provide: LocationStrategy, useClass: HashLocationStrategy}

(附件.module.ts):

import { NgModule }       from '@angular/core';
import { BrowserModule  } from '@angular/platform-browser';
import { AppComponent }   from './app.component';
import { HashLocationStrategy, LocationStrategy } from '@angular/common';

@NgModule({
    declarations: [AppComponent],
    imports: [BrowserModule],
    providers: [{provide: LocationStrategy, useClass: HashLocationStrategy}],
    bootstrap: [AppComponent],
})
export class AppModule {}

替代

使用RouterModule.forroot和{useHash:true}參數。

例子:(來自角文檔)

import { NgModule } from '@angular/core';
...

const routes: Routes = [//routes in here];

@NgModule({
  imports: [
    BrowserModule,
    FormsModule,
    RouterModule.forRoot(routes, { useHash: true })
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }


查看完整回答
反對 回復 2019-07-06
  • 3 回答
  • 0 關注
  • 733 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號