ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
base 要素とは
HTML 文書内のすべての相対 URL のベースを指定する要素。 内に 1 つだけ書けます。
サンプル
はじめに
属性
| 属性 | 意味 | 例 |
|---|---|---|
href | ベース URL | https://cdn.example.com/v2/ |
target | 全リンクのデフォルトターゲット | _blank / _self / _parent / _top / フレーム名 |
少なくともどちらか 1 つ指定が必要。両方指定も可。
target 属性で全リンクを新タブに
About
Contact
ドキュメントサイトやヘルプセンターで「全リンクを新タブで開きたい」用途に便利。ただしUX を損ねることが多いので注意。
副作用1: ページ内アンカーが効かなくなる
最大の落とし穴。 を指定すると、 が同ページ内のアンカーではなく https://example.com/#section への新規ナビゲーションになります:
セクション
セクション
セクション
副作用2: フォーム送信先
同様に も base からの解釈になります。意図しないエンドポイントに POST される可能性があります。
SPA での活用例
React / Vue / Angular のシングルページアプリケーションで、サブディレクトリ配置するときに使われます:
// React Router
import { BrowserRouter } from 'react-router-dom';
// public/index.html に がある場合
...
// Vue Router
const router = createRouter({
history: createWebHistory('/admin/'),
routes: [...]
});
// Angular
// angular.json の "baseHref": "/admin/" + index.html の
動的に base を変える
// JavaScript で base を変更
const base = document.querySelector('base');
if (base) {
base.href = 'https://cdn-region-jp.example.com/';
} else {
const newBase = document.createElement('base');
newBase.href = 'https://cdn-region-jp.example.com/';
document.head.prepend(newBase);
}
// 注意: すでにパース済の相対 URL(
等)は再評価されない
// → 動的に変えても効果は限定的
base を使う代替手段
| 用途 | base を使う | 代替 |
|---|---|---|
| サブディレクトリ配置 | | 絶対パス書く or サーバ側で配信パス調整 |
| 全リンクを新タブ | | JS で document.links ループ |
| CDN への切替 | base.href 変更 | ビルド時にパス置換 |
| ローカル / 本番のパス切替 | 環境別 base | 環境変数 + テンプレート |
セキュリティ上の注意
XSS 攻撃で を注入されると、すべての相対 URL リソース(JS / CSS / 画像)が攻撃者サーバから読まれる非常に危険なベクタになります。CSP で防御:
Content-Security-Policy: base-uri 'self'
# base 要素の href として許可するオリジンを制限
# 攻撃者が を注入できなくなる
歴史と互換性
- HTML2.0 (1995) で導入
- 当初は
hrefのみ。targetは HTML4 で追加 - すべてのブラウザで対応(IE 含む)
- HTML5 仕様で「1 ページに 1 つだけ」が明文化
非推奨なパターン
- 本文中で href 切替のためだけに base → 絶対 URL を書いた方が明確
- SEO 対策で base を使う → 検索エンジンに canonical URL を伝えるなら
を使う - JS で頻繁に base を書き換える → SPA ルーターを使う
- iframe 内に異なる base → 親フレームと混乱の元
FAQ
Q: 同 1 ページに複数の を書ける?
A: HTML5 仕様で1 つだけと明記。複数あるとブラウザは最初の 1 つを採用、それ以外を無視します。
Q: base を使うと相対 URL の動作が変
A: base が想定通り効いている可能性大。view-source: でレンダリング後の URL を確認、ブラウザ DevTools の Network タブで実際のリクエスト URL をチェックしましょう。
Q: SPA で BrowserRouter の basename と どちらが必要?
A: 両方推奨。 は静的アセット(CSS/JS/画像)の相対パス、basename はルーティングを担当します。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- HTML q要素(インライン引用 / blockquote との違い / cite属性の使い方) 2026-06-11 05:44:46
- SQL 制約(NOT NULL / UNIQUE / PRIMARY KEY / FOREIGN KEY / CHECK / DEFAULT 完全ガイド) 2026-06-11 05:44:46
- Mac Safari でユーザーエージェントを切り替える方法(開発メニュー / Chrome や IE のフリ) 2026-06-11 05:44:46
- Laravel ルート一覧確認|php artisan route:list の使い方・フィルタオプション・JSON 出力・キャッシュ 2026-06-11 05:44:46
- Java static変数(クラス変数 / インスタンス変数との違い / 使い所と落とし穴) 2026-06-11 05:44:46
- HTML bdo要素(双方向テキストの方向を強制 / dir 属性の使い方 / bdi との違い) 2026-06-11 05:44:46
- Webスクレイピングとは|Python で始めるサンプルコード・robots.txt・利用規約・法的注意点まとめ 2026-06-11 05:44:46
- Canvas API 図形描画|四角形 fillRect / 円 arc / 線 lineTo / 多角形 と塗りつぶし・輪郭の使い分け 2026-06-11 05:44:46
- jQuery 値の取得|.text() / .html() / .val() / .attr() / .data() の違いと使い分け 2026-06-11 05:44:46
- UE5 ThirdPersonテンプレート キャラクターを歩かせる方法(Max Walk Speed / Shift で走る切替) 2026-06-11 05:44:46
- HTML figure要素(figcaption と一緒に図表・画像・コードを意味付け) 2026-06-11 05:44:46
- SQL DELETE 文 完全ガイド|WHERE 句必須、ROLLBACK、TRUNCATE との違い、Oracle/MySQL/PostgreSQL の違い 2026-06-11 05:44:46
- jQuery クリックイベント完全ガイド|.click() と .on("click") の違い・イベント委譲・ダブルクリック対策 2026-06-11 05:44:46
- jQuery .ready()(DOM 構築完了で実行 / 4 つの書き方 / 現代の代替) 2026-06-11 05:44:46
- Java Calendar.getInstance() 使い方|タイムゾーン/ロケール指定・年月日曜日の取得・LocalDate との比較 2026-06-11 05:44:46
コメントを削除してもよろしいでしょうか?