网页前端资源

基本信息

属性 值
位置 src/main/resources/extracted/web/
释放方式 运行时从 jar 内解压到 dynmap/webroot/(DynmapCore.java 约 :2585-2596 的解压循环)
版本占位替换 仅对 .html / .js / .php / .txt 四类做文本替换(DynmapCore.java:2588)
占位符 TAG_TO_REPLACE_ON_EXTRACT → Tags.GRADLETOKEN_VERSION(DynmapCore.java:2589)

语言构成:本 mod 的源码是纯 Java(342 个 .java,无 .scala/.kt/.ts),但网页端是 PHP + JavaScript + CSS + HTML 的组合。extracted/web/ 下按扩展名统计:

扩展名 数量
.png 102
.php 30
.js 29
.css 7
.html 3
.ico 2
.map 2
.gif / .svg / .webmanifest / .xml / .txt / .aspx 各 1

功能

浏览器端渲染与交互层。三个 HTML 页面是入口:index.html(主地图页)、login.html(登录页)、inactive.html。

JS 层的功能划分可直接由文件名读出:

类别 文件
地图显示 hdmap.js、map.js、minecraft.js、dynmaputils.js、projectiontest.js
标记 markers.js、custommarker.js、sidebarmarkers.js、sidebarutils.js
聊天 chat.js、chatbox.js、chatballoon.js
玩家 playermarkers.js、inactive.js
叠加控件 coord.js、link.js、logo.js、regiongrid.js、regions.js、digitalclock.js、timeofdayclock.js
第三方库 jquery-1.11.0.js、jquery-3.5.1.js、jquery.json.js、jquery.mousewheel.js、leaflet.js、leaflet-src.js

仓库同时携带 两个 jQuery 版本(1.11.0 与 3.5.1),此处仅如实记录,不判定其是否为冗余。

CSS 共 7 个,位于 extracted/web/css/:dynmap_style.css、embedded_example.css,其余为图片资源目录 images/。

PHP 布局

30 个 PHP 文件分两组:

组 文件 数量
顶层端点 gettiles.php、up.php 2
standalone/ 独立部署套件 configuration.php、login.php、register.php、markers.php、tiles.php、update.php、sendmessage.php 7
standalone/ 数据库适配 MySQL_*.php(9)、PostgreSQL_*.php(9)、SQLite_markers.php、SQLite_tiles.php 20

standalone/ 是一套绕过 Java 服务端、直接连数据库的 PHP 实现,含 MySQL_access.php、MySQL_configuration.php、MySQL_funcs.php、MySQL_getlogin.php、MySQL_login.php、MySQL_markers.php、MySQL_register.php、MySQL_sendmessage.php、MySQL_tiles.php、MySQL_update.php 与对应的 9 个 PostgreSQL 文件,另有 SQLite_markers.php、SQLite_tiles.php。

数值

数值名 值
PHP 文件数 30
JS 文件数 29
CSS 文件数 7
HTML 页面数 3
做版本替换的扩展名种类 4(.html .js .php .txt)

交互

触发 行为
首次启动 从 jar 解压 extracted/ 到 dynmap/webroot/
每次解压 .html/.js/.php/.txt 中的版本占位符被替换为构建版本
其余二进制资源 逐字节原样复制(DynmapCore.java:2591-2596)

相关条目