会社のオフィシャルHP が 7~8割方出来てきた。
なんかネガティブ対応な気がするし、スマートで無いなぁ(=o=;)
そもそもローカルのルート相対パス側をちゃんとすべきだった気がめっちゃするし(;・∀・)
次はもっと考慮して管理せんと駄目ですね。。
ここ1週間は外出予定があまり無かったので、集中して内勤作業が出来たのが大きい。
(外出ばっかりだったから自宅で進めてたのは、まあご愛嬌)
(外出ばっかりだったから自宅で進めてたのは、まあご愛嬌)
関係者に確認して貰うためテスト環境を公開したのだが、
まだ制作中のため更新したら随時行うテスト環境の最新化をどうするかなーと。
大掛かりなものでもないので、svn update を定期的にするよう仕込みたかったんだけど問題が発生。
(単に考慮漏れなんだけど orz)
制作は自分のPC上でやっていて、そこではホスト localhost で index.html のリクエストURI は /index.html にしている。
しかし訳あってテスト環境上の リクエストURI は /official/index.html となる。
つまり DocumentRoot にサブディレクトリを含む含まないの違い。
このサイトルート相対パスの違いによって問題となったのは、
html ファイル上で参照している js や css や img などの外部ファイルの参照や内部リンクの記述方法。
html ファイルでは参照系は全て以下のようなサイトルート相対パスで記述している。
(単に考慮漏れなんだけど orz)
制作は自分のPC上でやっていて、そこではホスト localhost で index.html のリクエストURI は /index.html にしている。
しかし訳あってテスト環境上の リクエストURI は /official/index.html となる。
つまり DocumentRoot にサブディレクトリを含む含まないの違い。
- http://www.aaaaa.com/index.html
- http://www.aaaaa.com/official/index.html
このサイトルート相対パスの違いによって問題となったのは、
html ファイル上で参照している js や css や img などの外部ファイルの参照や内部リンクの記述方法。
html ファイルでは参照系は全て以下のようなサイトルート相対パスで記述している。
<link href="/css/official.css" rel="stylesheet" type="text/css"></link> <script src="/js/jquery.min.js" type="text/javascript"></script>
しかし自分のようにサイトルート相対パスを、制作している環境の / で構成管理していてしまうと、
サイトルート相対パスが /official/ なテスト環境で svn update すると当然参照系は全滅(omg ...)。
サイトルート相対パスが /official/ なテスト環境で svn update すると当然参照系は全滅(omg ...)。
こんなことに時間割いてる余裕も無いので取り急ぎ以下のようなシェルで対応。。
#!/bin/sh # ==================================================================== # 環境設定 # ==================================================================== # svn リポジトリ URL SVN_URL="file:///subversion/repos/official-src/trunk/html" # コンテキスト名 CONTEXT="official" # ドキュメントルート DOCUMENT_ROOT="/var/www/html" # official ルート OFFICIAL_ROOT=${DOCUMENT_ROOT}"/"${CONTEXT} # ==================================================================== # 前処理 # ==================================================================== # clean rm -rf ${OFFICIAL_ROOT} # ==================================================================== # 本処理 # ==================================================================== # export cd ${DOCUMENT_ROOT} svn export ${SVN_URL} ${CONTEXT} # owner chown -R apache: ${OFFICIAL_ROOT} # replace cd ${OFFICIAL_ROOT} # # /js/ --> /official/js/ # /css/ --> /official/css/ # /img/ --> /official/img/ # grep -Evl '/js/' ${OFFICIAL_ROOT} -r | xargs sed -i "s|/js/|/${CONTEXT}/js/|g" grep -Evl '/css/' ${OFFICIAL_ROOT} -r | xargs sed -i "s|/css/|/${CONTEXT}/css/|g" grep -Evl '/img/' ${OFFICIAL_ROOT} -r | xargs sed -i "s|/img/|/${CONTEXT}/img/|g" # # grep sed 祭りが続く... # # end exit 0
なんかネガティブ対応な気がするし、スマートで無いなぁ(=o=;)
そもそもローカルのルート相対パス側をちゃんとすべきだった気がめっちゃするし(;・∀・)
次はもっと考慮して管理せんと駄目ですね。。