摘要:隨著,的普及,前后端分離之后,多采用為靜態(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í)行一個正則匹配,區(qū)分大小寫
~* 表示執(zhí)行一個正則匹配,不區(qū)分大小寫
^~ 表示普通字符匹配,如果該選項(xiàng)匹配,只匹配該選項(xiàng),不匹配別的選項(xiàng),一般用來匹配目錄
= 進(jìn)行普通字符精確匹配
@ 定義一個命名的 location,使用在內(nèi)部定向時,例如 error_page, try_files
browserHistory 模式的刷新問題browserHistory 路由模式下,使用history api可以在前端進(jìn)行頁面跳轉(zhuǎn),但是刷新的話,就需要對鏈接進(jìn)行一個修復(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") }多個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在打包的時候壓縮靜態(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://www.ezyhdfw.cn/yun/107334.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í)行一個正則匹配,區(qū)分大小寫 ~* 表示執(zhí)行一個正則匹配,不區(qū)分大小寫 ^~ 表示普通字符匹配,...
摘要:所以單頁應(yīng)用的部署,需要將所有的頁面請求都返回,瀏覽器下載了后會自動解析并導(dǎo)航到對應(yīng)頁面??偨Y(jié)單頁應(yīng)用與以前的常規(guī)多頁面應(yīng)用還是有區(qū)別的,開發(fā)過程與后端解耦了,同時會出現(xiàn)跨域鑒權(quán)以及應(yīng)用部署的問題。 本文同步發(fā)布于我的個人博客上 - 單頁應(yīng)用的部署方案 本文主要簡單講一下單頁應(yīng)用的開發(fā)及部署方法,默認(rèn)你懂一些服務(wù)端知識及nginx知識,如果有任何可以在下方評論留言。 單頁應(yīng)用 SPA(...
摘要:而從技術(shù)實(shí)現(xiàn)角度,微前端架構(gòu)解決方案大概分為兩類場景單實(shí)例即同一時刻,只有一個子應(yīng)用被展示,子應(yīng)用具備一個完整的應(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)文檔致謝前言如果你是一個初學(xué)者,這個項(xiàng)目可以是很好的教程。單元測試新增一個單元測試,你只需在中創(chuàng)建文件。在腳手架中用于擴(kuò)展服務(wù)和代理。 項(xiàng)目地址: https://github.com/YutHelloWo... 基于React、Redux、React-Router@3.x、webpack和reacts...
摘要:開發(fā)到部署,親力親為當(dāng)我們開發(fā)一個單頁面應(yīng)用時,執(zhí)行完構(gòu)建后會生成一個在目錄,那怎么把這個部署到服務(wù)器上呢目錄結(jié)構(gòu)前端構(gòu)建完的靜態(tài)文件鏡像所需的配置文件配置挑幾點(diǎn)配置講講,先是壓縮資源,以節(jié)省帶寬和提高瀏覽器加載速度雖然已經(jīng)支持在構(gòu)建時就生 開發(fā)到部署,親力親為 當(dāng)我們開發(fā)一個單頁面應(yīng)用時,執(zhí)行完構(gòu)建后 npm run build 會生成一個 index.html 在 dist 目錄,...
閱讀 3966·2021-11-17 09:33
閱讀 1268·2021-10-09 09:44
閱讀 455·2019-08-30 13:59
閱讀 3564·2019-08-30 11:26
閱讀 2238·2019-08-29 16:56
閱讀 2914·2019-08-29 14:22
閱讀 3200·2019-08-29 12:11
閱讀 1344·2019-08-29 10:58