Angular專案中怎麼給路徑新增字首?下面本篇文章給大家介紹一下Angular專案路徑新增指定的存取字首的方法,希望對大家有所幫助!
開發多個專案的時候,我們希望能通過指定的字首路徑去存取不同的專案。比如,通過字首 /projectA/
去存取專案 A
;通過字首 /projectB/
去存取專案 B
。我們應該怎麼設定呢?
這裡使用的框架是
Angular
,"@angular/core": "~12.1.0"
假設我們新增的字首為
/jimmy/
1. 更改路由字首
在 app.module.ts
檔案中新增 APP_BASE_HREF
:
import { APP_BASE_HREF } from '@angular/common';
@NgModule({
providers: [
{
provide: APP_BASE_HREF,
useValue: "/jimmy/"
}
]
})
登入後複製
2. 更改打包的檔案
這一步非必需,我們這裡只是統一一下名稱為
jimmy
而已 【相關教學推薦:《》】
更改 angular.json
的輸出檔案:
{
"projects": {
...
{
"outputPath": "jimmy"
}
}
}
登入後複製
3. 更改掛載檔案的 base href
預設情況下,掛載的檔案 index.html
一般長這樣:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Jimmy</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="logo.png">
</head>
<body>
<app-root></app-root>
</body>
</html>
登入後複製
我們是要將 <base href="/">
變成 <base href="/jimmy/">
。但是,我們不能手動更改掛載檔案。因為只要構建後的檔案更改即可,所以我們可以在 package.json
檔案中完成這一步。只需要新增 --base-href=/jimmy/
即可,如下:
"scripts": {
"build": "ng build --base-href=/jimmy/"
}
登入後複製
執行 npm run build
打包後得到的資料夾 jimmy
下的 index.html
檔案中的 base
標籤自然會更改。
至此,我們已經更改完了存取的專案字首,那麼我們要部署到伺服器上進行存取,是要怎麼做呢?
這裡假設我已經將打包後的 jimmy
資源上傳到了伺服器,並且用 nginx
作為代理。
本專案是個 SPA 專案。MPA 專案的講解會放在下一篇文章,相關專案使用技術是
next.js
,敬請期待
這裡,我們需要更改 nginx.config
中的 server
欄位:
server {
listen 80 default_server;
root /usr/share/nginx/fe/; // 打包的檔案存放的位置
location /jimmy/ {
index index.html index.htm;
try_files $uri $uri/ /jimmy/index.html;
}
}
登入後複製
執行 nginx -s reload
使得設定生效。通過 http://domain.com/jimmy/index.html
就可以存取到專案 jimmy
了。
更多程式設計相關知識,請存取:!!
以上就是詳解Angular專案中怎麼給路徑新增指定存取字首的詳細內容,更多請關注TW511.COM其它相關文章!