React實現反向代理和修改打包后的目錄
React反向代理和修改打包后的目錄
反向代理
前提是做了反向代理:
安裝 http-proxy-middleware
npm i http-proxy-middleware
在src/下新建 setupProxy.js
const proxy = require("http-proxy-middleware");
module.exports = function(app) {
app.use(proxy("/api", {
target: "http://xxx.com:7000" , //配置你要請求的服務器地址
changeOrigin: true,
}))
app.use(proxy("/static", {
target: "http://xxx.com:7000" ,
changeOrigin: true,
}))
};
修改打包后的目錄
由于我的前端靜態(tài)資源以 static 開頭,但是 create-react-app(基于 webpack)默認在打包應用時,也會將打包好的資源放置到打包后的 static 目錄下,導致在加載打包后的資源時,不在前端打包資源中尋找,而是進行了請求轉發(fā)(反向代理),按著前端的打包資源地址,去服務端請求資源,導致請求不到資源,報錯。
所以就需要修改打包后的目錄,首先運行:
npm run eject
目的是讓webpack 相關配置顯現出來(默認是內部隱藏掉了)。
然后可能會有報錯:

這時我們需要將 git 倉庫的文件提交一下。
之后再次執(zhí)行命令就可以了,webpack 等相關配置全部顯現。
然后會再次出現 babel 報錯,只需要刪掉 package.json 中的:
"eslintConfig": {
"extends": [
"react-app",
"react-app/ject"
]
}
然后在 config/webpack.config.js下修改:

可以將 static 修改為其他名稱,比如這里修改為了 assets。
問題解決!
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
React通過redux-persist持久化數據存儲的方法示例
這篇文章主要介紹了React通過redux-persist持久化數據存儲的方法示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02

