详解Angular项目中怎么给路径添加指定访问前缀

 2700

Angular项目中怎么给路径添加前缀?下面本篇文章给大家介绍一下Angular项目路径添加指定的访问前缀的方法,希望对大家有所帮助!


详解Angular项目中怎么给路径添加指定访问前缀


开发多个项目的时候,我们希望能通过指定的前缀路径去访问不同的项目。比如,通过前缀 /projectA/ 去访问项目 A;通过前缀 /projectB/ 去访问项目 B。我们应该怎么设置呢?

这里使用的框架是 Angular"@angular/core": "~12.1.0"

更改项目前缀

假设我们添加的前缀为 /jimmy/

1. 更改路由前缀

在 app.module.ts 文件中添加 APP_BASE_HREF

  1. import { APP_BASE_HREF } from '@angular/common';
  2.  
  3. @NgModule({
  4.   providers: [
  5.     {
  6.       provide: APP_BASE_HREF,
  7.       useValue: "/jimmy/"
  8.     }
  9.   ]
  10. })

2. 更改打包的文件

这一步非必需,我们这里只是统一一下名称为 jimmy 而已

更改 angular.json 的输出文件:

  1. {
  2.   "projects": {
  3.     ...
  4.     {
  5.       "outputPath": "jimmy"
  6.     }
  7.   }
  8. }

3. 更改挂载文件的 base href

默认情况下,挂载的文件 index.html 一般长这样:

  1. <!doctype html>
  2. <html>
  3. <head>
  4.   <meta charset="utf-8">
  5.   <title>Jimmy</title>
  6.   <base href="/">
  7.   <meta name="viewport" content="width=device-width, initial-scale=1">
  8.   <link rel="icon" type="image/x-icon" href="logo.png">
  9. </head>
  10. <body>
  11.   <app-root></app-root>
  12. </body>
  13. </html>

我们是要将 <base href="/"> 变成 <base href="/jimmy/">。但是,我们不能手动更改挂载文件。因为只要构建后的文件更改即可,所以我们可以在 package.json 文件中完成这一步。只需要添加 --base-href=/jimmy/ 即可,如下:

  1. "scripts": {
  2.   "build": "ng build --base-href=/jimmy/"
  3. }

运行 npm run build 打包后得到的文件夹 jimmy 下的 index.html 文件中的 base 标签自然会更改。

至此,我们已经更改完了访问的项目前缀,那么我们要部署到服务器上进行访问,是要怎么做呢?

部署项目

这里假设我已经将打包后的 jimmy 资源上传到了服务器,并且用 nginx 作为代理。

本项目是个 SPA 项目。MPA 项目的讲解会放在下一篇文章,相关项目使用技术是 next.js ,敬请期待

这里,我们需要更改 nginx.config 中的 server 字段:

  1. server {
  2.   listen 80 default_server;
  3.   root /usr/share/nginx/fe/; // 打包的文件存放的位置
  4.    
  5.   location /jimmy/ {
  6.     index  index.html index.htm;
  7.     try_files $uri $uri/ /jimmy/index.html;
  8.   }
  9. }

执行 nginx -s reload 使得配置生效。通过 http://domain.com/jimmy/index.html 就可以访问到项目 jimmy 了。


本文网址:https://www.zztuku.com/detail-13939.html
站长图库 - 详解Angular项目中怎么给路径添加指定访问前缀
申明:本文转载于《掘金社区》,如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐

    织梦CMS如何转换其他程序