そんな今日この頃でして、、、

コード書いたり映画みたり。努力は苦手だから「楽しいこと」を探していきたい。

BASEタグ便利すなぁ

Web関係の仕事について短くもないはずなんだけど、今だにHTMLのタグですら「そんなのあったんだ!」て発見があるから驚くやら未熟さを実感するやら。


BASEタグ:HEADタグ内に記述することでページ内での相対パスの基準を定義できる。

<head>
  <title>たいとる</title>
  <base href="/to/path/" target="_self">
</head>

<BASE>−HTMLタグリファレンス


最近はMojolicious::Liteでアプリ書いてHerokuに上げるなんてことを良くしたりする。

そんな時に面倒なのが環境によってのURIの差異。

自分の環境で開発する時は、毎度ミドルウェアの設定を書き直すのも面倒なのでマウント用のページの下で動かしたりしているのだが、そうするとルートからのパスが変わってしまうことになる。

各ページへのリンクは相対パスで良いとしても、CSSやらJSのパスは階層が変わる毎に記述を変えなければならなくて面倒くさいなーと思っていた。

本番はルートディレクトリ「/*」、開発は特定のディレクトリ下「/mojo/*」でアプリが動いてるとする。

cssとかjsは動作ディレクトリ直下にあって、絶対パスで示すと本番は「/xxx.css」、開発は「/mojo/xxx.css」になる。

しかしURI設計が階層的で例えば「(開発なら/mojo)/edit/aaa」とかもありうるので、一律に「./xxx.css」と記述しとけば済むわけじゃない。

みたいな状況


環境変数でパスを渡して各所の記述を全部書き換えるのも美しくないので、何かしらミドルウェア側の設定とかで楽できないかなーなんてググってたら、何のことはなくてHTMLのタグ一個で解決出来る話だった。

このタグを使ってプログラム側から渡されたパスを基準とすることで、相対パス絶対パスのようにして(と表現すると変な感じだが)使うことができる。

本番はBASEを「/」、開発は「/mojo/」にすると、いずれの環境でもどの階層下でも「./xxx.css」と記述しとけば済む。

(その代わり各所の相対パスでの記述のリンクは見直す必要があるけど、自身のURI自体は把握しやすいのでそんなに大変ではないかなと。)


よくよく考えれば「ちゃんと」HTML学ぶ機会ってこれまで無かったわけで、まだまだ勉強していかなきゃいけないことは一杯あるなーなんて。

よくわかるHTML5+CSS3の教科書

よくわかるHTML5+CSS3の教科書


そういえば

キルラキルのサントラと新OP買ったった!

「キルラキル」オリジナルサウンドトラック

「キルラキル」オリジナルサウンドトラック

ambiguous

ambiguous

作品自体は毎週凄く楽しいけど「勢いと話題性で楽しむタイプの作品だし円盤は買わないで良いかなー」と思ってるけど、楽曲に関してどうしようもなく手元に置いておきたくなったのでポチってしまった。

Blumenkranzあたり流しながらコーディングしてると捗る、気がする。