最近寫了一個小項目玩,前端是angular,後端是koa,分離部署,着實折騰了一天。地址在 yukarin.cn
ng build --prod --aot
用nginx代理這個angular靜態資源它,具體這麼作:javascript
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我也不懂,可是要知道如下幾點:php
1. servername是你要代理的域名,這裏我nginx代理的是yukarin.cn 2. 以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了css
確實如此,能夠在網上找找loading的css代碼。copy到index中的app-root裏面便可,待app-root裏面的組件加載完後,會自動刪除咱們添加的loading代碼。html