網上看了許多,大多數都是nginx作成靜態項目,可是這樣侷限性太多,與Web項目相比許多服務端想作的驗證都很麻煩,因而開始了艱難的探索之路,終於在不經意間試出來了,一把辛酸。。。html
正常的打包就不說了。至於package.json裏面這個hompage的參數,無所謂,最後沒有用到。項目用的庫就是這些,react-router4,新的路由~前端
看下打包出來的項目: 相比一下其餘方式(作後臺出家的,前端那一堆複雜的打包方法沒用過~)大同小異,直接使用腳手架確實方便,react
改了下生成js的名字,生成的每次都要加幾個隨機的字符。nginx
首先看下路由,就是這樣json
接下來,講重點!!跨域
Spring的@RequestMapping與Reat-Router4路由結合,這裏也是最蛋疼的地方。瀏覽器
①若是是想要返回頁面這種,好比{indexUrl},實際值是/wechat/index,服務器
那麼在Spring裏面,RequestMapping 要同樣!要同樣!要同樣!說3遍react-router
什麼,你說路徑裏包含了項目的名字,好比這個項目叫 health ,app
那你就等着打開 http://localhost:8080/health/wechat/index 的時候GG吧,
趕忙拿nginx作個反向代理,反正你訪問的路徑只能是 http://{nginx配置的域名}/wechat/index,
至關於就是說的根路徑,跟拿nginx作靜態服務器的那種同樣,要根目錄訪問。這樣一來,React-router的路由才和你重疊了,
感受就像寫CSS欺騙人同樣,明明這2貨沒啥聯繫,八竿子挨不着,結果實際的顯示效果這2人居然合體了......
這個時候返回頁面就交給Spring了,把打包的html改爲jsp,jsp喲,這下想往頁面裏丟什麼參數都好辦了
而後呢,而後就沒有了。接下來的路由管理就交給React-Router4了,/add 和 /submit 如今都是由路由來響應了,Spring裏面就沒有RequestMapping了。
固然,你應該知道經過React-Router過去的頁面,點擊瀏覽器的刷新是要404的,這個就不解釋了。
②實際項目中也仍是會有經過瀏覽器路徑跳轉的,這個時候也有些蛋疼的時候,好比註冊頁面完成跳轉到index頁面。
那麼只好寫多個路由打包了...這個有點蛋疼,把須要額外@RequestMapping返回的頁面,同上面的方式打包
打個包
又打個包
③接口,這個加個跨域的處理就行~