在Angular项目如何通过前缀 /projectA/ 去访问项目 A;通过前缀 /projectB/ 去访问项目 B呢?下面给大家带来了详细教程希望能给大家带来帮助。
在Angular项目中给路径添加指定访问前缀之教程
更改项目前缀
假设我们添加的前缀为 /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项目中给路径添加指定访问前缀之教程就到这里,翼速应用平台内有更多相关资讯,欢迎查阅!
我来说两句