こぼれネット

作業メモ: PruneCluster をインターネット非接続環境で使用するためのローカル化手順と判断経緯

作業メモ

PruneCluster をインターネット非接続環境で使用するためのローカル化手順と判断経緯


0. 目的


1. 事前調査:外部依存の洗い出し

HTML テンプレート内で、以下の外部リソースを使用していることを確認。

いずれも CDN または外部サーバ参照であり、オフライン環境では使用不可。


2. 手法①:外部ライブラリのローカルダウンロード

2.1 方針

2.2 実施手順(ダウンロード)

# Leaflet
curl -L -o leaflet.js https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.0.0-beta.2.rc.2/leaflet.js
curl -L -o leaflet.css https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.0.0-beta.2.rc.2/leaflet.css
# PruneCluster
curl -L -o PruneCluster.js http://kobore.net/PruneCluster.js
curl -L -o examples.css http://kobore.net/examples.css

3. 手法②:Go サーバから静的ファイルを配信

3.1 方針

3.2 実施手順(Go 側)

http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("."))))

4. 手法③:HTML 側の参照をローカルに変更

4.1 実施手順(HTML 修正)

<link rel="stylesheet" href="/static/leaflet.css"/>
<link rel="stylesheet" href="/static/examples.css"/>
<script src="/static/leaflet.js"></script>
<script src="/static/PruneCluster.js"></script>

5. 発生した問題

JS は動作しているが、PruneCluster の視覚的特徴が無効化されている状態


6. 原因調査

6.1 仮説

6.2 調査結果

examples.css の先頭に以下を確認。

@import url(../dist/LeafletStyleSheet.css);

7. 手法④(最終方針):examples.css を単体完結させる(方法A)

7.1 方針


8. 実施手順(方法A:完全手順)

8.1 一時的に補助 CSS を取得

curl -L -o LeafletStyleSheet.css http://kobore.net/dist/LeafletStyleSheet.css

8.2 examples.css をバックアップ

cp -p examples.css examples.css.bak

8.3 @import 行を除去

grep -v '^@import url(\.\./dist/LeafletStyleSheet\.css);' examples.css > examples.css.body

8.4 CSS を結合(単体完結化)

cat LeafletStyleSheet.css examples.css.body > examples.css

8.5 一時ファイル削除

rm -f LeafletStyleSheet.css examples.css.body

9. 結果

server22-1_v3.go
leaflet.js
leaflet.css
PruneCluster.js
examples.css

10. 教訓・注意点


このメモは、
再現手順書・README・引き継ぎ資料としてそのまま使用可能なレベルで記載しています。

モバイルバージョンを終了