国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Webpack打包arcgis js api 3.x純html+JS+CSS項(xiàng)目

這篇具有很好參考價(jià)值的文章主要介紹了Webpack打包arcgis js api 3.x純html+JS+CSS項(xiàng)目。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

需求

小項(xiàng)目。純HTML+JS+CSS已經(jīng)部署上線,但是沒有做混淆加密,需要進(jìn)行混淆加密

分析

目前代碼里面需要混淆加密的有main.js,其他的不用混淆加密。所以只需要對(duì)main.js進(jìn)行混淆加密就可,但是要保證混淆加密之后能夠訪問方法。由于目前在index.html的script使用import導(dǎo)入main.js里面的方法,需要有名字,但是打包之后一般會(huì)報(bào)錯(cuò)找不到這個(gè)名字的模塊,因?yàn)椴皇菑膆tml里面的script進(jìn)行打包的,所以在script里面引入打包后的main.js(bundle.js)是不會(huì)引入成功的因?yàn)槟K方法變了。因?yàn)樽隽俗兞棵煜?/strong>。所以把html script方法放到main.js里面。

實(shí)踐

入口文件在libs/mian.js 最終webpack打包代碼,其中有兩個(gè)關(guān)鍵點(diǎn):
1. path: path.resolve(__dirname, ‘a(chǎn)-dist’),// 自定義明明,因?yàn)橐频椒?wù)器,所以不使用dist命名;
2. TerserPlugin中的混淆取消,只用去除console和代碼注釋,不能將混淆打開,否則會(huì)報(bào)錯(cuò),和另一個(gè)混淆工具沖突;

// webpack.config.js
const path = require('path');
const TerserPlugin = require('terser-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const ProgressBarPlugin = require('progress-bar-webpack-plugin');
// 加密
const WebpackObfuscator = require('webpack-obfuscator');



module.exports = {
    entry: './libs/main.js',
    mode: 'production',
    output: {
        filename: 'bundle.js',
        // libraryTarget: 'amd', // 不用這樣設(shè)置。因?yàn)楦牧艘雃sri js api模塊的方式,不用AMD方式,改用esri-loader的自定義loadModules。原理是動(dòng)態(tài)加載,避開由于使用require找不到對(duì)應(yīng)模塊的問題
        path: path.resolve(__dirname, 'a-dist'),// 自定義明明,因?yàn)橐频椒?wù)器,所以不使用dist
    },
    devtool: 'source-map',
    devServer: {
        // contentBase: path.join(__dirname, ''),
        compress: true,
        port: 8080,
        open: true, historyApiFallback: {
            index: 'index.html',
        },
    },
    optimization: {
        minimizer: [
            new TerserPlugin({
                terserOptions: {
                    // mangle: true, // 是否混淆變量名,默認(rèn)為 true。因?yàn)橐肓薟ebpackObfuscator,先注釋
                   compress: {
                        // 壓縮選項(xiàng)
                        drop_console: true, // 是否去除控制臺(tái)輸出,默認(rèn)為 false
                        drop_debugger: true, // 是否去除調(diào)試語句,默認(rèn)為 false
                    },
                    output: {
                        beautify: false, // 是否美化輸出,默認(rèn)為 false
                        comments: false, // 是否保留注釋,默認(rèn)為 true
                    },
                    // 更多選項(xiàng)請(qǐng)參考 Terser 文檔
                },
            }),
        ],
    },
    plugins: [
        new ProgressBarPlugin(),
        new HtmlWebpackPlugin({
            template: 'index.html',  // 指定HTML模板文件的路徑
            filename: 'index.html' // 生成的HTML文件名,默認(rèn)為index.html
            // 還可以添加其他配置選項(xiàng),如title、favicon等
        }),
        new CopyWebpackPlugin({
            patterns: [
                { from: 'img', to: 'img' },
                { from: 'static', to: 'static' },
                {
                    from: 'libs', to: 'libs', filter: (resourcePath) => {
                        // 在這里添加你想要忽略的文件或目錄的邏輯判斷。因?yàn)槲业捻?xiàng)目結(jié)構(gòu)原因,打包時(shí)候不能把main.js也復(fù)制過去,排除掉。
                        return !resourcePath.endsWith('main.js') && !resourcePath.endsWith('map-action.js');
                    }/* globOptions: {
                        ignore: ['libs/main.js', 'libs/map-action.js'] // 設(shè)置要忽略的文件或目錄的匹配模式
                    } */
                }, // 指定要拷貝的文件或目錄,從來源路徑到目標(biāo)路徑
                // 可以繼續(xù)添加其他的規(guī)則
            ],
        }),
        // 目前沒有和TerserPlugin方法混淆,因?yàn)閠erserOptions中的mangle沒有設(shè)置以為true
        new WebpackObfuscator({
            rotateUnicodeArray: true,// 啟用 Unicode 數(shù)組的字符旋轉(zhuǎn)。默認(rèn)值為 true
            compact: true,// 合并和混淆輸出代碼。默認(rèn)值為 true。
            selfDefending: true,// 生成自保護(hù)的混淆代碼。默認(rèn)值為 true。
            stringArray: true,// 啟用字符串?dāng)?shù)組混淆。默認(rèn)值為 true。
            stringArrayEncoding: ['base64', 'rc4'],// 指定字符串?dāng)?shù)組的編碼方式??蛇x值為 'base64'、'rc4' 和 'none'。默認(rèn)值為 'base64'。
            
        }),
    ],
    // externals: {
    //     esri: 'esri', // 注意不用在這里在引入一次
    // },

    module: {
        rules: [
            // JS 文件的加載器
            {
                test: /\.js$/,
                exclude: /node_modules/,
                use: 'babel-loader',
            },
            // CSS 文件的加載器
            {
                test: /\.css$/,
                use: ['style-loader', 'css-loader'],
            },
        ],
    },
};

打包結(jié)束
Webpack打包arcgis js api 3.x純html+JS+CSS項(xiàng)目

難點(diǎn)

Webpack打包原理中會(huì)解析模塊引入語句,如import、require找到對(duì)應(yīng)模塊,但是esri在html+JS+CSS獲取是通過require獲取動(dòng)態(tài)鏈接。問題來了,那為什么一開始arcgis js用require來請(qǐng)求?為什么不用import?但是一般情況下引入require是沒有這個(gè)方法的,那require從哪里來的?參考:ArcGIS api for js中的require()究竟是什么。得出require()方法從init.js里面來。
為了配合webpack打包,不能使用require()進(jìn)行加載esri模塊,換種方式請(qǐng)求!查了一下集成和請(qǐng)求模塊方式,發(fā)現(xiàn)有esri-loader,其中有個(gè)方法loadModules。如下代碼
esri-loader原理

esri-loader具體原理如下(ChatGPT 3.5的回答):

  1. 動(dòng)態(tài)加載:esri-loader 使用動(dòng)態(tài)腳本加載技術(shù)來加載 ArcGIS API for
    JavaScript。它會(huì)根據(jù)用戶的需求,在運(yùn)行時(shí)動(dòng)態(tài)地向 HTML 頁面中插入<script>標(biāo)簽,從指定的 CDN或本地目錄加載相關(guān)的 JavaScript 文件。

  2. 異步加載:ArcGIS API for JavaScript 包含多個(gè) JavaScript文件,有些文件可能比較大。為了提高頁面加載速度,esri-loader 使用異步加載方式,按需加載所需的文件。這樣可以避免一次性加載整個(gè) API,而只加載需要的部分。

  3. 回調(diào)處理:當(dāng)相關(guān) JavaScript 文件加載完成后,esri-loader 會(huì)觸發(fā)用戶指定的回調(diào)函數(shù)。在回調(diào)函數(shù)中,您可以安全地使用ArcGIS API for JavaScript 的模塊和類。

  4. 模塊導(dǎo)入:esri-loader 通過自定義的 loadModules方法,簡(jiǎn)化了模塊的導(dǎo)入過程。它允許您以數(shù)組形式傳入需要導(dǎo)入的模塊名,并返回 Promise 對(duì)象。當(dāng)這些模塊加載完成后,Promise才會(huì)被解析,您就可以在回調(diào)函數(shù)中使用這些模塊

>./libs/main.js esri 地圖初始化
import * as esriLoader from './esri-loader/esm/esri-loader.js';
export async function initMap(data) {
    // require和function中的參數(shù)必須對(duì)應(yīng)
    console.log("?? ~ file: main.js:696 ~ initMap ~ window.$esriLocal:", window.$esriLocal)
   // if (!esriLoader.isLoaded()) {
      //  esriLoader.loadScript({ url: "https://js.arcgis.com/3.44/" })
     //   esriLoader.loadCss("https://js.arcgis.com/3.44/esri/css/esri.css")
    // 原來是require,改為loadModules,這樣webpack打包時(shí)候就不會(huì)解析require,也不用在webpack.config.js external里面配置了。參考官方:
    esriLoader.loadModules([
        "esri/map",
        "esri/Color",
        "esri/graphic",
        "esri/geometry/Extent",
        "esri/geometry/Point",
        "esri/geometry/Polygon",
        "esri/geometry/Polyline",
        "esri/SpatialReference",
        "esri/layers/KMLLayer",
        "esri/layers/GraphicsLayer",
        "esri/symbols/SimpleMarkerSymbol",
        "esri/symbols/FillSymbol",
        "esri/symbols/LineSymbol",
        "esri/symbols/SimpleFillSymbol",
        "esri/symbols/SimpleLineSymbol",
        "esri/symbols/TextSymbol",
        "dojo/parser",
        "esri/layers/TileInfo",
        "esri/layers/WebTiledLayer",
        "dojo/dom-style",
        "esri/config"]).then(function ([
            Map, 
            Color, 
            Graphic, 
            Extent, 
            Point, 
            Polygon, 
            Polyline,
            SpatialReference,
            KMLLayer, 
            GraphicsLayer, 
            SimpleMarkerSymbol,
            FillSymbol,
            LineSymbol,
            SimpleFillSymbol,
            SimpleLineSymbol,
            TextSymbol,
            parser, TileInfo, WebTiledLayer, domStyle,
            esriConfig]) {
            window.$esriLocal = {
                Map: Map,
                Color: Color,
                SpatialReference: SpatialReference,
                Extent: Extent,
                WebTiledLayer: WebTiledLayer,
                TileInfo: TileInfo,
                Graphic: Graphic,
                Point: Point,
                Polyline: Polyline,
                GraphicsLayer: GraphicsLayer,
                SimpleMarkerSymbol: SimpleMarkerSymbol,
                FillSymbol: FillSymbol,
                LineSymbol: LineSymbol,
                SimpleFillSymbol: SimpleFillSymbol,
                SimpleLineSymbol: SimpleLineSymbol,
                TextSymbol: TextSymbol,
            }

            //  else {
            console.log("?? ~ file: main.js:342 ~ initMap ~ window.$esriLocal:", window.$esriLocal)
            /** 當(dāng)前地圖視角的顯示矩形范圍*/
            let extentp = { west: 125.9738504337227, south: 61.624205573999646, east: 116.55005559052246, north: 38.67104274606849 };
            let extent = new window.$esriLocal.Extent({
                xmax: extentp.east,
                xmin: extentp.west,
                ymax: extentp.north,
                ymin: extentp.south,
                spatialReference: { wkid: 4490 },
            });
            map = new window.$esriLocal.Map("map", {
                center: [],
                zoom: 1,
                fadeOnZoom: true,
                fitExtent: true,
                sliderPosition: "bottom-right",
                logo: false,// 去除官方logo
                // slider:false,
            });
            // 定位到范圍
            map.setExtent(extent);
            // 在這里添加自定義底圖
        });
    //}
    // 老方法,但是這樣在webpack中會(huì)影響打包,因?yàn)閣ebpack默認(rèn)使用commonjs模塊系統(tǒng)進(jìn)行打包,找不到對(duì)應(yīng)模塊和包就會(huì)報(bào)錯(cuò)。
   /*  await require([
        "esri/map",
        "esri/Color",
        "esri/graphic",
        "esri/geometry/Extent",
        "esri/geometry/Point",
        "esri/geometry/Polygon",
        "esri/geometry/Polyline",
        "esri/SpatialReference",
        "esri/layers/KMLLayer",
        "esri/layers/GraphicsLayer",
        "esri/symbols/SimpleMarkerSymbol",
        "esri/symbols/FillSymbol",
        "esri/symbols/LineSymbol",
        "esri/symbols/SimpleFillSymbol",
        "esri/symbols/SimpleLineSymbol",
        "esri/symbols/TextSymbol",
        "dojo/parser",
        "esri/layers/TileInfo",
        "esri/layers/WebTiledLayer",
        "dojo/dom-style",
        "esri/config",
        "dijit/layout/BorderContainer",
        "dijit/layout/ContentPane",
    ], function (
        Map, Color, Graphic, Extent, Point, Polygon, Polyline,
        SpatialReference, KMLLayer, GraphicsLayer, SimpleMarkerSymbol,
        FillSymbol,
        LineSymbol,
        SimpleFillSymbol,
        SimpleLineSymbol,
        TextSymbol,
        parser, TileInfo, WebTiledLayer, domStyle,
        esriConfig
    ) {
        window.$esriLocal = {
            Map: Map,
            Color: Color,
            SpatialReference: SpatialReference,
            Extent: Extent,
            WebTiledLayer: WebTiledLayer,
            TileInfo: TileInfo,
            Graphic: Graphic,
            Point: Point,
            Polyline: Polyline,
            GraphicsLayer: GraphicsLayer,
            SimpleMarkerSymbol: SimpleMarkerSymbol,
            FillSymbol: FillSymbol,
            LineSymbol: LineSymbol,
            SimpleFillSymbol: SimpleFillSymbol,
            SimpleLineSymbol: SimpleLineSymbol,
            TextSymbol: TextSymbol,
        }

        //  else {
        console.log("?? ~ file: main.js:342 ~ initMap ~ window.$esriLocal:", window.$esriLocal)
        /** 當(dāng)前地圖視角的顯示矩形范圍*
        let extentp = { west: 125.9738504337227, south: 61.624205573999646, east: 116.55005559052246, north: 38.67104274606849 };
        let extent = new window.$esriLocal.Extent({
            xmax: extentp.east,
            xmin: extentp.west,
            ymax: extentp.north,
            ymin: extentp.south,
            spatialReference: { wkid: 4490 },
        });
        map = new window.$esriLocal.Map("map", {
            center: [],
            zoom: 1,
            fadeOnZoom: true,
            fitExtent: true,
            sliderPosition: "bottom-right",
            logo: false,// 去除官方logo
            // slider:false,
        });
        // 定位到范圍
        map.setExtent(extent);
        // }

    }) */

}

缺點(diǎn)

也算優(yōu)點(diǎn)吧,就是每次修改代碼生效就需要用webpack的devServer進(jìn)行了,不能用直接訪問文件的形式。

注意

可能會(huì)出現(xiàn)multipleDefine的錯(cuò)誤。就是引入init.js多次,引入一次就夠了,還有網(wǎng)上說是jquery,但是我代碼里面沒用用jQuery,之前也出現(xiàn)了multipleDefine,但是設(shè)置這個(gè)之后就沒有出現(xiàn)了,后面我又用html引入init.js,發(fā)現(xiàn)又沒有報(bào)錯(cuò),下次報(bào)錯(cuò)了再補(bǔ)充(主要沒有發(fā)現(xiàn)哪里導(dǎo)致重復(fù)多次定義,init.js也就引用一次。

另一個(gè)猜想,是因?yàn)閣ebpac之前有一篇文章說打包成amd,就是這個(gè)參數(shù)libraryTarget,然后在手機(jī)上出現(xiàn)multipleDefine,去除了重新打包就沒有報(bào)錯(cuò),這一快比較模糊。)

知識(shí)儲(chǔ)備

解決這個(gè)問題需要的知識(shí)儲(chǔ)備為

  1. JavaScript模塊系統(tǒng);
  2. webpack原理;
  3. webpack、arcgis js api使用經(jīng)驗(yàn);

總結(jié)

從原則、框架邏輯開始,也就是各家官方網(wǎng)站庫(kù)使用教程開始,一般都有前言,包括背景介紹、庫(kù)開發(fā)注意事項(xiàng)、如何使用(繼承方式)
ArcGIS Maps SDK for JavaScript
Webpack打包arcgis js api 3.x純html+JS+CSS項(xiàng)目
webpack-getting-startedWebpack打包arcgis js api 3.x純html+JS+CSS項(xiàng)目

體系化知識(shí)的必要性。碎片化學(xué)習(xí)只在體系化學(xué)習(xí)之后。
你要學(xué)一個(gè)新東西,就要問這個(gè)東西是什么?歷史是什么?怎么用?目前能用在哪里?基礎(chǔ)內(nèi)容都有什么?
沒有具體老師的時(shí)候,官方就是最好的老師。

后記

webpack可以修改模塊系統(tǒng)標(biāo)識(shí),所以有人一開始就使用AMD模塊開發(fā),修改難度比較難的話就用

libraryTarget: ‘a(chǎn)md’

但是我沒時(shí)間測(cè)試,所以有人可以可以丟鏈接給我。文章來源地址http://www.zghlxwxcb.cn/news/detail-514818.html

到了這里,關(guān)于Webpack打包arcgis js api 3.x純html+JS+CSS項(xiàng)目的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 5個(gè)前端練手項(xiàng)目(html css js canvas)

    5個(gè)前端練手項(xiàng)目(html css js canvas)

    ?前言: 首先祝大家端午節(jié)快樂。本篇文章有5個(gè)練手項(xiàng)目 對(duì)于剛學(xué)完前端三劍客的你們。應(yīng)該是一個(gè)很好的實(shí)踐 目錄 ??.跑馬燈 1.1效果圖: 1.2思路解析 1.3源碼 ??.彩虹愛心 2.1效果圖 2.2思路解析 2.3源碼 ??.鬧鐘 3.1效果圖 3.2思路解析 3.3源碼 ??.自制筆記本 4.1效果展示 4

    2024年02月02日
    瀏覽(54)
  • 前端練手小項(xiàng)目--自定義時(shí)間(html+css+js)

    前端練手小項(xiàng)目--自定義時(shí)間(html+css+js)

    關(guān)于要寫這篇文章的原因 是記錄在工作上遇到的困難需求, 是希望能給大家提供一些解決問題的思路 接下來我描述這個(gè)需求的多樣性,難點(diǎn)在哪。 勾選勾選框開始時(shí)間與結(jié)束時(shí)間默認(rèn)顯示昨天與今天。 取消勾選框開始時(shí)間與結(jié)束時(shí)間清空。 選擇開始時(shí)間,勾選框勾選,結(jié)

    2024年02月12日
    瀏覽(24)
  • 【前端】夯實(shí)基礎(chǔ) css/html/js 50個(gè)練手項(xiàng)目(持續(xù)更新)

    【前端】夯實(shí)基礎(chǔ) css/html/js 50個(gè)練手項(xiàng)目(持續(xù)更新)

    發(fā)現(xiàn)一個(gè)沒有用前端框架的練手項(xiàng)目,很適合我這種純后端開發(fā)夯實(shí)基礎(chǔ),內(nèi)含50個(gè)mini project,學(xué)習(xí)一下,做做筆記。 項(xiàng)目地址:https://github.com/bradtraversy/50projects50days 效果預(yù)覽 核心代碼: 知識(shí)點(diǎn)總結(jié): 響應(yīng)式布局 flex: 5; 操作 classList 可以動(dòng)態(tài)修改節(jié)點(diǎn)的 class 效果預(yù)覽 核心

    2024年02月22日
    瀏覽(24)
  • vue項(xiàng)目的vue.config.js在打包過程中,并不會(huì)處理api請(qǐng)求。

    vue項(xiàng)目的vue.config.js在打包過程中,并不會(huì)處理api請(qǐng)求。

    主要處理打包選項(xiàng)和靜態(tài)資源文件 請(qǐng)求是axios處理的 ?

    2024年02月16日
    瀏覽(21)
  • Webpack打包簡(jiǎn)單的js文件

    初始化一個(gè)新的npm 步驟一: 初始化npm項(xiàng)目,創(chuàng)建一個(gè)package.json文件 步驟二: 添加打包腳本:在 scripts 部分添加一個(gè)命令來運(yùn)行webpack 步驟三: 安裝Webpack 步驟四: 創(chuàng)建一個(gè)簡(jiǎn)單的Javascript文件,比如 src/index.js 步驟五: 配置Webpack,創(chuàng)建一個(gè)名為 webpack.config.js 的文件 步驟六

    2024年01月24日
    瀏覽(20)
  • Webpack打包圖片-js-vue

    Webpack打包圖片-js-vue

    為了演示我們項(xiàng)目中可以 加載圖片 ,我們需要在項(xiàng)目中使用圖片,比較常見的使用圖片的方式是兩種: img 元素,設(shè)置 src 屬性; 其他元素(比如div),設(shè)置 background-image 的css屬性; 我們當(dāng)前使用的webpack版本是webpack5: 在webpack5之前,加載這些資源我們需要使用一些 loader

    2024年02月06日
    瀏覽(21)
  • 第三節(jié):Node.js 之 Webpack 打包

    第三節(jié):Node.js 之 Webpack 打包

    官網(wǎng)網(wǎng)址:https://webpack.docschina.org/ 減少文件數(shù)量,縮減代碼體積,提高瀏覽器打開速度。 用于分析、并打包代碼。支持所有類型文件的打包,其本質(zhì)是一個(gè)第三方模塊包。 初始化包環(huán)境 安裝依賴包 配置package.json 的 scripts(自定義命令) 在根目錄下新建 src 文件夾, 所有要

    2024年02月15日
    瀏覽(26)
  • Node.js入門與 Webpack模塊打包工具

    Node.js入門與 Webpack模塊打包工具

    目錄 Node.js入門 fs模塊-讀寫文件 path模塊-路徑處理? 壓縮前端html 認(rèn)識(shí)URL中的端口號(hào) http模塊-創(chuàng)建Web服務(wù) 體驗(yàn) Web 服務(wù)除了接口數(shù)據(jù)以外,還能返回網(wǎng)頁資源等? Node.js模塊化? ECMAScript標(biāo)準(zhǔn)-默認(rèn)導(dǎo)出和導(dǎo)入 ECMAScript標(biāo)準(zhǔn)-命名導(dǎo)出和導(dǎo)入? 包的概念 npm軟件包管理器 npm安裝所有依

    2024年02月11日
    瀏覽(25)
  • 【python】webpack是什么,如何逆向出webpack打包的js代碼?

    【python】webpack是什么,如何逆向出webpack打包的js代碼?

    ?? 歡迎大家來到景天科技苑?? ???? 養(yǎng)成好習(xí)慣,先贊后看哦~???? ?? 作者簡(jiǎn)介:景天科技苑 ??《頭銜》:大廠架構(gòu)師,華為云開發(fā)者社區(qū)專家博主,阿里云開發(fā)者社區(qū)專家博主,CSDN新星創(chuàng)作者,掘金優(yōu)秀博主,51CTO博客專家等。 ??《博客》:Python全棧,前后端開

    2024年03月25日
    瀏覽(22)
  • Arcgis進(jìn)階篇(4)——arcgis js api使用geoserver服務(wù)

    Arcgis進(jìn)階篇(4)——arcgis js api使用geoserver服務(wù)

    geoserver-2.19.x(此版本支持jdk8.x)的下載地址: 鏈接:https://pan.baidu.com/s/1PkmmjHWWzbUA9fYfa110Ew?pwd=8tvf? 提取碼:8tvf? 經(jīng)測(cè)試,最新版本的geoserver需要jdk11,可自行測(cè)試。 開源軟件geoserver使用指南_geoserver使用手冊(cè)_紀(jì)永輝的博客-CSDN博客 注意geoserver和geowebcache都要設(shè)置,都要從lib文

    2024年02月03日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包