詳解Angular專案中怎麼給路徑新增指定存取字首

2023-03-03 22:00:10

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其它相關文章!