国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Angular2+如何去除url中的#號詳解

2024-05-06 15:23:27
字體:
來源:轉載
供稿:網友

前言

本文中主要介紹了關于Angular2+中去除url中#號的相關內容,這是最近在工作中遇到的一個問題,覺著有必要給大家分享下,下面話不多說了,來一起看看詳細的介紹吧。

1. 為什么要去除?

Angular官方指出:如果沒有足夠使用hash風格(#)的理由,還是盡量使用HTML5模式的路由風格; 如果配置了hash風格,在微信支付或是Angular的深路徑依然會出404的問題; 當你需要使用GA等工具時,由于無法獲取#號后的URL,導致每次路由切換都給其發送一個路徑; '#'有點丑。

2. 怎樣才能去除?

有四個方法:

前端 + ngx 前端 + Apache 前端 + Tomcat GithubPages / 碼云 Pages + 404 頁面

2.1  前端

index.html的head里加

<base href="/" rel="external nofollow" >

app.module.ts

import { ROUTER_CONFIG } from './app.routes.ts';@NgModule({ imports: [ ... RouterModule.forRoot(ROUTER_CONFIG)  // RouterModule.forRoot(ROUTER_CONFIG, { useHash: true } ) 這樣寫是帶#的 ], })

app.routes.ts:

import { NgModule } from '@angular/core';import { Routes } from '@angular/router';export const ROUTER_CONFIG: Routes = [ { ... }];

如果只配置前端會怎么樣?

如果只配置前端雖然會去掉'#'但是一刷新頁面就404,路徑解析上出錯了。
Angular是單頁應用,它實現了前端路由功能,后臺可以不再控制路由的跳轉,將原本屬于后端的業務邏輯全部丟給前端。

用戶刷新頁面時(http://gitee.poetry/life),請求是先被提交到了WebServer后臺,后臺路由沒有對應頁面的路由管理,就會出現404的錯誤。 用戶如果是先訪問首頁(http://gitee.poetry),然后再跳轉到 頁面(http://gitee.poetry/life),則這個跳轉是由Angular前臺管理的URL,訪問是正常的。

那么我們讓WebServer把屬于Angular管理的路由URL,都轉發到index.html就可以解決404的問題了,也就是后面介紹的配置信息。

思考:hash模式為什么不會404?

2.2 ngx配置

帶'***'的是需要自己配置 nginx.conf 文件內容

server { listen 80; #監聽的端口號  server_name my_server_name; # 服務器名稱 *** root /projects/angular/myproject/dist; #相對于nginx的位置 *** index index.html; #如果index.html存在,就結束查找過程,把這個文件附加到請求的request_uri后面,并且發起一個內部的redirect。 location / { # / 是匹配所有的uri后執行下面操作 try_files $uri $uri/ /index.html; #try_files先尋找名為 $uri 文件,沒有則尋找 $uri/ 文件,再沒有就尋找/index.html }}

try_files 詳細解釋:

如請求的是https://deepthan.gitee.io/poetry/life, $uri則是‘/life',如果‘$uri'‘$uri/'都找不到,就會 fall back 到 try_files 的最后一個選項 /index.html發起一個內部 “子請求”,也就是相當于 nginx 發起一個 HTTP 請求到https://deepthan.gitee.io/poetry/index.html。這個請求會被 location ~ .php$ { ... } catch 住,也就是進入 FastCGI 的處理程序。而具體的 URI 及參數是在 REQUEST_URI 中傳遞給 FastCGI 和 WordPress 程序的,因此不受 URI 變化的影響。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 兰考县| 安仁县| 达州市| 横山县| 宁武县| 工布江达县| 分宜县| 乌拉特前旗| 囊谦县| 台中市| 久治县| 水城县| 雷州市| 永寿县| 巴林左旗| 澜沧| 平安县| 湄潭县| 霍林郭勒市| 大丰市| 迁西县| 丘北县| 印江| 隆回县| 霍邱县| 新龙县| 黎城县| 沁阳市| 五寨县| 临江市| 电白县| 黎平县| 察隅县| 朔州市| 茶陵县| 盐边县| 河南省| 五家渠市| 崇州市| 淄博市| 略阳县|