BASEタグは、書いた場所以降で反映されるので注意が必要。
BaseタグはHEAD直後に書きます。コレ重要
サンプル
OK の例
<head> <base href="http://www.example.com/test/test.html" target="_self"/> <link rel="stylesheet" type="text/css" href="../css/admin.css" /> #OK 反映される <link rel="stylesheet" type="text/css" href="../css/print.css" /> #OK 反映される <script type="text/javascript" src="../js/default.js"></script> #OK 反映される </head>
混ぜた場合
<head> <link rel="stylesheet" type="text/css" href="../css/admin.css" /> #NG 反映されない <base href="http://www.example.com/test/test.html" target="_self"/> <link rel="stylesheet" type="text/css" href="../css/print.css" /> #OK 反映される <script type="text/javascript" src="../js/default.js"></script> #OK 反映される </head>
NG例
<head> <link rel="stylesheet" type="text/css" href="../css/admin.css" /> #NG 反映されない <link rel="stylesheet" type="text/css" href="../css/print.css" /> #NG 反映されない <script type="text/javascript" src="../js/default.js"></script> #NG 反映されない <base href="http://www.example.com/test/test.html" target="_self"/> </head>
まとめ
と言うわけでBaseタグはHEADオープンタグの直後に書きます。
BASEタグを使えば、相対パスを無視して,好きな絶対URLに書換えられるので便利ですね。
HTMLファイル一枚だけ渡されて,更新してって言われたときでも、本番環境なしで作業できます。
知ってると知らないで変わってくる
昔上司に,「BASE使えねぇしおかしくなるか使うな。」っていわれたけど、そのときは宋かなぁと思ってたけど、彼がBaseの前にStyle書いてたんだなと思うと納得する。