成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

如何將react項(xiàng)目build的靜態(tài)文件,放到j(luò)avaweb項(xiàng)目中,使用tomcat運(yùn)行

elina / 3173人閱讀

摘要:歡迎分享,注明版權(quán)即可。打包時(shí),修改下的修改的路徑對(duì)應(yīng)需要在項(xiàng)目中的靜態(tài)文件路徑,比如我的是原始的配置二針對(duì)使用時(shí),造成的刷新頁(yè)面問(wèn)題配置三修改配置文件時(shí),注意和兩個(gè)文件都要修改,同時(shí)兩個(gè)配置文件關(guān)于的配置并不太一樣。

歡迎分享,注明版權(quán)即可。

總體架構(gòu)

前端:react技術(shù)棧
后端:srping+springmvc+mybatis

問(wèn)題:

如果不想將前端項(xiàng)目多帶帶部署,而是想要將打包后的靜態(tài)文件放到后臺(tái)項(xiàng)目中,然后通過(guò)tomcat部署,可行嗎?
答案:完全沒(méi)問(wèn)題

本人成功經(jīng)驗(yàn)如下:
一、

前端項(xiàng)目通過(guò)create-react-app + react-router4 + antd
使用Facebook官方提供的cli工具創(chuàng)建項(xiàng)目,屏蔽掉自己創(chuàng)建時(shí)關(guān)于webpack的一對(duì)問(wèn)題,在cli基礎(chǔ)上按個(gè)人需要自定義配置即可。
打包時(shí),修改config下的paths.js
修改的路徑對(duì)應(yīng)需要在java項(xiàng)目中的靜態(tài)文件路徑,比如我的是

WEB-INF/static

function getServedPath(appPackageJson) {
  const publicUrl = getPublicUrl(appPackageJson);
  const servedUrl =
    // envPublicUrl || (publicUrl ? url.parse(publicUrl).pathname : "/"); 原始的配置
    envPublicUrl || (publicUrl ? url.parse(publicUrl).pathname : "/static");
  return ensureSlash(servedUrl, true);
}

二、針對(duì)使用react-router時(shí),造成的刷新頁(yè)面404問(wèn)題
配置


    404
    /static/index.html

三、修改webpack配置文件時(shí),注意dev和prod兩個(gè)文件都要修改,同時(shí)兩個(gè)配置文件關(guān)于loader的配置并不太一樣。

//dev中
{
    test: /.less$/,
    use: [
        require.resolve("style-loader"),
        require.resolve("css-loader"),
        {
            loader: require.resolve("postcss-loader"),
            options: {
                ident: "postcss", // https://webpack.js.org/guides/migrating/#complex-options
                plugins: () => [
                    require("postcss-flexbugs-fixes"),
                    autoprefixer({
                        browsers: [
                            ">1%",
                            "last 4 versions",
                            "Firefox ESR",
                            "not ie < 9", // React doesn"t support IE8 anyway
                        ],
                        flexbox: "no-2009",
                    }),
                ],
            },
        },
        {
            loader: require.resolve("less-loader"),
            options: {
                modifyVars: {"@primary-color": "#1DA57A"},//改變顏色
            },
        },
    ],
},
//prod中
{
    test: /.(css|less)/,
    loader: ExtractTextPlugin.extract(
        Object.assign(
            {
                fallback: require.resolve("style-loader"),
                use: [
                    {
                        loader: require.resolve("css-loader"),
                        options: {
                            importLoaders: 1,
                            minimize: true,
                            sourceMap: true,
                        },
                    },
                    {
                        loader: require.resolve("postcss-loader"),
                        options: {
                            // Necessary for external CSS imports to work
                            // https://github.com/facebookincubator/create-react-app/issues/2677
                            ident: "postcss",
                            plugins: () => [
                                require("postcss-flexbugs-fixes"),
                                autoprefixer({
                                    browsers: [
                                        ">1%",
                                        "last 4 versions",
                                        "Firefox ESR",
                                        "not ie < 9", // React doesn"t support IE8 anyway
                                    ],
                                    flexbox: "no-2009",
                                }),
                            ],
                        },
                    },
                    {
                        loader: require.resolve("less-loader"),
                        options: {
                            modifyVars: {"@primary-color": "#1DA57A"},//改變顏色
                        },
                    },
                ],
            },
            extractTextPluginOptions
        )
    ),
    // Note: this won"t work without `new ExtractTextPlugin()` in `plugins`.
},

其他待補(bǔ)充。。。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67534.html

相關(guān)文章

  • JavaWeb宿舍管理系統(tǒng)環(huán)境搭建運(yùn)行教程

    摘要:在百度搜索,下載后解壓到某個(gè)盤(pán)符下即可記住解壓路徑,后面要用下載并配置環(huán)境變量很重要,作者使用版本,也是建議初學(xué)者使用作者的版本其它版本后面配置可能會(huì)出問(wèn)題。下載和環(huán)境變量配置在百度搜索關(guān)鍵詞有很多教程,這里不在重復(fù)。 ...

    不知名網(wǎng)友 評(píng)論0 收藏0
  • JavaWeb從0開(kāi)始學(xué)(一)-----第一個(gè)Web應(yīng)用程序與JSP工作原理

    摘要:當(dāng)后繼請(qǐng)求相同的頁(yè)面時(shí),容器加載之前生成的類(lèi),并且通知去執(zhí)行已經(jīng)存在的字節(jié)碼,從而省去了轉(zhuǎn)換的過(guò)程,這也是第一次執(zhí)行頁(yè)面時(shí)間較長(zhǎng)的原因。 以往學(xué)習(xí)的時(shí)候大多是看完書(shū)或者看完視頻,動(dòng)手實(shí)踐一下就OK了。然而過(guò)了一段時(shí)間我發(fā)現(xiàn)東西都忘差不多了,需要復(fù)習(xí)才能重新掌握?,F(xiàn)在開(kāi)始學(xué)習(xí)JavaWeb了,我將在這里記錄自己的學(xué)習(xí)的一點(diǎn)一滴,不僅便于自己以后回顧知識(shí)點(diǎn),也希望能對(duì)JavaWeb初學(xué)者有...

    CloudDeveloper 評(píng)論0 收藏0
  • 深入分析JavaWeb Item1 -- JavaWeb開(kāi)發(fā)入門(mén)

    摘要:中主要是使用語(yǔ)言。將的動(dòng)態(tài)功能和標(biāo)準(zhǔn)的安全性引入大型網(wǎng)絡(luò)應(yīng)用的開(kāi)發(fā)集成部署和管理之中。提供了一個(gè)圖形界面的管理工具,稱(chēng)為信息服務(wù)管理器,可用于監(jiān)視配置和控制服務(wù)。 一、基本概念 1.1、WEB開(kāi)發(fā)的相關(guān)知識(shí)   WEB,在英語(yǔ)中web即表示網(wǎng)頁(yè)的意思,它用于表示Internet主機(jī)上供外界訪問(wèn)的資源?! nternet上供外界訪問(wèn)的Web資源分為: 靜態(tài)web資源(如html 頁(yè)面...

    tinna 評(píng)論0 收藏0
  • IDEA如何部署JAVAWEB項(xiàng)目TOMCAT

    摘要:創(chuàng)建一個(gè)傳統(tǒng)項(xiàng)目不使用構(gòu)建方法一勾選方法二勾選部署項(xiàng)目并非把項(xiàng)目放到的目錄中,而項(xiàng)目還是在源項(xiàng)目目錄中,采用了一種無(wú)入侵項(xiàng)目方式部署不修改任何文件虛擬目錄方式在啟動(dòng)后,會(huì)在目錄下創(chuàng)建對(duì)應(yīng)目錄,并復(fù)制個(gè)目錄到目錄下,這 IDEA創(chuàng)建一個(gè)傳統(tǒng)JAVA WEB項(xiàng)目(不使用maven構(gòu)建) 方法一 File --> NEW --> Project --> Java (勾選Web Applica...

    bitkylin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<