摘要:隨著,的普及,前后端分離之后,多采用為靜態(tài)服務(wù)器,并用對做反向代理,以實(shí)現(xiàn)前端應(yīng)用的部署。
隨著react,vue的普及,前后端分離之后,多采用nginx為靜態(tài)服務(wù)器,并用nginx對api做反向代理,以實(shí)現(xiàn)前端SPA應(yīng)用的部署。nginx location 匹配規(guī)則
~ 波浪線表示執(zhí)行一個(gè)正則匹配,區(qū)分大小寫
~* 表示執(zhí)行一個(gè)正則匹配,不區(qū)分大小寫
^~ 表示普通字符匹配,如果該選項(xiàng)匹配,只匹配該選項(xiàng),不匹配別的選項(xiàng),一般用來匹配目錄
= 進(jìn)行普通字符精確匹配
@ 定義一個(gè)命名的 location,使用在內(nèi)部定向時(shí),例如 error_page, try_files
browserHistory 模式的刷新問題browserHistory 路由模式下,使用history api可以在前端進(jìn)行頁面跳轉(zhuǎn),但是刷新的話,就需要對鏈接進(jìn)行一個(gè)修復(fù)(重定向)
我們可以使用nginx 的 try_files 來實(shí)現(xiàn):
location / { root /code/app1/build; index index.html index.htm; try_files $uri $uri/ /index.html; } location ^~ /app { alias /code/app2/build; index index.html; try_files $uri $uri/ /app/index.html; } location ^~ /api/ { proxy_pass http://api.site; }
webpackDevServer的重定向配置
const basename = "/app"; devServer: { proxy: { "/api": { target: "http://api.site", changeOrigin: true, secure: false } }, publicPath: basename, host: HOST, port: PORT, inline: true, historyApiFallback: { rewrites: [ { from: new RegExp(`^${basename}`), to: `${basename}/index.html` }, { from: /./, to: basename } ] }, disableHostCheck: true, contentBase: path.join(__dirname, "build") }多個(gè)SPA的部署與重定向
首先約定發(fā)布代碼目錄如下:
/publish_webapp/ |-- app1/ |-- index.html |-- static |-- app2/ |-- index.html |-- static
nginx 配置:
location ~* ^/(w+) { root /publish_webapp/; index index.html; try_files $uri $uri/ $uri/index.html /$1/ /$1/index.html; }開啟gzip
gzip on; gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;
配合webpack在打包的時(shí)候壓縮靜態(tài)文件,使用webpack插件compression-webpack-plugin
由于在部署至nginx服務(wù)器之前使用了webpack生成了gizp壓縮之后的文件,所以就不用使用nginx來壓縮靜態(tài)js了,nginx只需要配置,直接使用gzip之后的文件即可。
配置gzip_static
gzip_static on;
The ngx_http_gzip_static_module module allows sending precompressed files with the “.gz” filename extension instead of regular files.
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/39794.html
摘要:隨著,的普及,前后端分離之后,多采用為靜態(tài)服務(wù)器,并用對做反向代理,以實(shí)現(xiàn)前端應(yīng)用的部署。 隨著react,vue的普及,前后端分離之后,多采用nginx為靜態(tài)服務(wù)器,并用nginx對api做反向代理,以實(shí)現(xiàn)前端SPA應(yīng)用的部署。 nginx location 匹配規(guī)則 ~ 波浪線表示執(zhí)行一個(gè)正則匹配,區(qū)分大小寫 ~* 表示執(zhí)行一個(gè)正則匹配,不區(qū)分大小寫 ^~ 表示普通字符匹配,...
摘要:所以單頁應(yīng)用的部署,需要將所有的頁面請求都返回,瀏覽器下載了后會自動(dòng)解析并導(dǎo)航到對應(yīng)頁面??偨Y(jié)單頁應(yīng)用與以前的常規(guī)多頁面應(yīng)用還是有區(qū)別的,開發(fā)過程與后端解耦了,同時(shí)會出現(xiàn)跨域鑒權(quán)以及應(yīng)用部署的問題。 本文同步發(fā)布于我的個(gè)人博客上 - 單頁應(yīng)用的部署方案 本文主要簡單講一下單頁應(yīng)用的開發(fā)及部署方法,默認(rèn)你懂一些服務(wù)端知識及nginx知識,如果有任何可以在下方評論留言。 單頁應(yīng)用 SPA(...
摘要:而從技術(shù)實(shí)現(xiàn)角度,微前端架構(gòu)解決方案大概分為兩類場景單實(shí)例即同一時(shí)刻,只有一個(gè)子應(yīng)用被展示,子應(yīng)用具備一個(gè)完整的應(yīng)用生命周期。為了解決產(chǎn)品研發(fā)之間各種耦合的問題,大部分企業(yè)也都會有自己的解決方案。 原文鏈接:https://zhuanlan.zhihu.com/p/... Techniques, strategies and recipes for building a modern ...
摘要:項(xiàng)目地址基于和的前端腳手架。目錄前言特性環(huán)境開始工程結(jié)構(gòu)開發(fā)調(diào)試單元測試靜態(tài)部署相關(guān)文檔致謝前言如果你是一個(gè)初學(xué)者,這個(gè)項(xiàng)目可以是很好的教程。單元測試新增一個(gè)單元測試,你只需在中創(chuàng)建文件。在腳手架中用于擴(kuò)展服務(wù)和代理。 項(xiàng)目地址: https://github.com/YutHelloWo... 基于React、Redux、[email protected]、webpack和reacts...
摘要:開發(fā)到部署,親力親為當(dāng)我們開發(fā)一個(gè)單頁面應(yīng)用時(shí),執(zhí)行完構(gòu)建后會生成一個(gè)在目錄,那怎么把這個(gè)部署到服務(wù)器上呢目錄結(jié)構(gòu)前端構(gòu)建完的靜態(tài)文件鏡像所需的配置文件配置挑幾點(diǎn)配置講講,先是壓縮資源,以節(jié)省帶寬和提高瀏覽器加載速度雖然已經(jīng)支持在構(gòu)建時(shí)就生 開發(fā)到部署,親力親為 當(dāng)我們開發(fā)一個(gè)單頁面應(yīng)用時(shí),執(zhí)行完構(gòu)建后 npm run build 會生成一個(gè) index.html 在 dist 目錄,...
閱讀 3193·2019-08-30 15:55
閱讀 2954·2019-08-30 13:46
閱讀 1456·2019-08-29 17:29
閱讀 3525·2019-08-29 11:08
閱讀 3450·2019-08-29 11:04
閱讀 1097·2019-08-28 18:20
閱讀 555·2019-08-26 13:37
閱讀 1340·2019-08-26 11:49