博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angular前后端分离部署
阅读量:6830 次
发布时间:2019-06-26

本文共 1667 字,大约阅读时间需要 5 分钟。

最近写了一个小项目玩,前端是angular,后端是koa,分离部署,着实折腾了一天。地址在 yukarin.cn

打包

ng build --prod --aot
  • 如果提示有错误,需要自行修改。
  • 打包完成后会看到命令行弹出一些打包后的信息,主要有main.js css assets chunk.js 等,其中main.js是启动是就需要加载的,chunk是今后懒加载的。

如何控制首页加载速度

  • 看看appModule里导入了多少模块,是否可以将其中对的一部分分散到懒加载的模块。
  • 通过nginx的gzip,下面马上说。

如何分离部署

  1. 服务器上装好nginx,关于nginx的安装和配置,可以参看我的。
  2. 想办法把打包后的静态文件(dist下的那一坨)拖到服务器上放着,图省事的可以用winSCP。
  3. 用nginx代理这个angular静态资源它,具体这么做:

    server { listen 80; gzip  on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; gzip_vary on; gzip_disable "MSIE [1-6]\."; server_name yukarin.cn; root /var/www/ng-starter; try_files $uri $uri/ /index.html; location /api {        proxy_set_header Host $http_host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header REMOTE-HOST $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_pass http://127.0.0.1:8080/api;    }}

    我试着努力解释一下吧,毕竟nginx我也不懂,但是要知道以下几点:

    1. servername是你要代理的域名,这里我nginx代理的是yukarin.cn2. 以gzip开头的配置就是配置nginx的gzip的,可以让我们的包变小。这段设置是我在网上抄的,能用。3. root是静态资源在服务器的路径,nginx将去这个路径下面找静态文件4. try_files $uri $uri/ /index.html 这段话的意思是说如果用户输入的uri能找到对应的文件,那么很好,可如果找不uri对应的文件,那么nginx就把路由托管给index.html。注意这个很重要,否则会出现刷新找不到页面的情况。5. location /api 那后面就是反向代理设置了,主要是解决分离部署跨域的问题,毕竟后台服务我跑在8080端口,而angular我是用nginx监听80端口,我的restApi都是在/api开头的,所以这里的设置就是把出现/api的uri时,就把请求全部给导到127.0.0.1:8080/api去处理

一番折腾下来,总算部署成功

用了gzip后,首页渲染速度得到了质的提升。

我的一个包本来1.72,现在只有500多k了

加个首页loading动画,让用户体验更好。

确实如此,可以在网上找找loading的css代码。copy到index中的app-root里面即可,待app-root里面的组件加载完后,会自动删除我们添加的loading代码。

转载地址:http://ivnkl.baihongyu.com/

你可能感兴趣的文章
hadoop-ID分析
查看>>
PHP单例模式
查看>>
leetcode 回文链表 java版本
查看>>
UEFI 模式下如何安装 Ubuntu 16.04
查看>>
OSChina 周一乱弹 ——新娘着火,拿红酒灭火的肯定是新郎前女友
查看>>
Python变量
查看>>
form表单ajax传数据问题
查看>>
linux虚拟化KVM(二)
查看>>
怎么用OCR文字识别软件创建属于自己的PDF
查看>>
spring 配置资源路径时候,classpath:/,classpath:,不带前缀的区别
查看>>
Java基础教程,第一讲,图解如何快速搭建自己的Java开发环境
查看>>
怎样设计一个安全的验证码--从验证码识别技术原理说起
查看>>
make clean与make distclean的区别
查看>>
我的友情链接
查看>>
C#获取文件CRC32值 (对应JAVA生成文件的CRC32值)
查看>>
Linux常用进程管理工具的使用--我的学习记录
查看>>
iOS开发之同一应用多环境配置
查看>>
网上找的一个现成的jquery图片切换效果
查看>>
一个简单的脚本,实现自动执行MITM***(更新0.2)
查看>>
数据结构学习笔记1
查看>>