4.4 Local Overrides(永続化)
Override Web Content Locally
Local Overridesとは
DevToolsでCSS、JavaScript、HTMLを変更しても、通常はページリロードで元に戻る。Local Overridesを有効にすると、変更が指定したローカルフォルダに保存され、リロード後もその変更が維持される。
| 特徴 | 説明 |
|---|---|
| 対象サイト | 任意のWebサイト(localhost以外も可) |
| 保存先 | 指定したローカルフォルダ(URLベースの階層構造) |
| 対象ファイル | CSS、JavaScript、HTML、画像、XHR/fetchレスポンス |
| HTTPヘッダー | レスポンスヘッダーのオーバーライドも可能 |
| キャッシュ | 有効時は自動的にキャッシュ無効化 |
セットアップ手順
初期設定
- 任意のWebサイトを開き、F12でDevToolsを起動
- Sourcesパネルを開く
- 左サイドバーのOverridesタブをクリック(表示されない場合は「≫」から選択)
- Select folder for overridesをクリック
- Overrides用の空フォルダを選択(例:
C:\devtools-overrides) - ブラウザ上部の「DevToolsがフォルダへのフルアクセスを要求しています」で許可をクリック
- Enable Local Overridesにチェックが入っていることを確認
- Overrides専用の空フォルダを使用する(他のファイルと混在させない)
- 機密情報を含むフォルダは選択しない(DevToolsがフルアクセス権を持つため)
- 一度設定すると、そのフォルダにURLベースの階層構造が自動生成される
CSSのオーバーライド
最も一般的な使用例。本番サイトのスタイルを実験的に変更し、リロード後も維持できる。
方法1: Elementsパネルから
操作手順
- Elementsパネル → Stylesペインで任意のプロパティを変更
- 変更したCSSファイルが自動的にOverridesフォルダにコピーされる
- ファイル名横に紫のドット●が表示される
- ページをリロードしても変更が維持される
方法2: Sourcesパネルから
操作手順
- Sourcesパネル → Pageタブ → CSSファイルを右クリック
- Override contentを選択
- ファイルがOverridesフォルダにコピーされ、編集可能になる
- コードを編集し、Ctrl+Sで保存
方法3: Networkパネルから
操作手順
- Networkパネルでリソースを右クリック
- Override contentを選択
- Sourcesパネルに自動で移動し、編集可能になる
inspector-stylesheetではなく実際のCSSファイルを選択すると、追加したルールもOverridesに保存される。
JavaScriptのオーバーライド
本番サイトのJavaScriptを修正し、バグの原因調査や修正テストに活用できる。
操作手順
- Sourcesパネル → Pageタブ → JSファイルを右クリック
- Override contentを選択
- コードを編集
- Ctrl+Sで保存
- ページをリロードして変更を適用
サードパーティスクリプトのデバッグ
広告スクリプト、アナリティクス、チャートライブラリなど、外部から読み込むスクリプトも同様にオーバーライドできる。問題の切り分けやパフォーマンス実験に有用。
// 例: サードパーティライブラリにログを追加
console.log('Library loaded:', new Date().toISOString());
// 元のコード
(function() {
// ...
})();
APIレスポンスのオーバーライド
XHRやfetchリクエストのレスポンスをオーバーライドできる。バックエンドの変更を待たずにフロントエンドの開発・テストが可能。
操作手順
- Networkパネルでオーバーライドしたいリクエストを右クリック
- Override contentを選択
- Sourcesパネルでレスポンスボディを編集
- 保存してページをリロード
// 例: APIレスポンスをモック
{
"users": [
{"id": 1, "name": "テストユーザー1"},
{"id": 2, "name": "テストユーザー2"},
{"id": 3, "name": "追加したモックデータ"}
],
"total": 3
}
HTTPヘッダーのオーバーライド
レスポンスヘッダーをオーバーライドして、CORS、CSP、キャッシュ設定などを実験できる。
操作手順
- Networkパネルでリクエストを選択
- Headersタブを開く
- Response Headersセクションでヘッダー値にカーソルを合わせる
- 編集アイコン(鉛筆)をクリック
- ヘッダー値を編集または新しいヘッダーを追加
よくある活用例
| ヘッダー | 活用例 |
|---|---|
Access-Control-Allow-Origin |
CORS問題のデバッグ |
Content-Security-Policy |
CSP制限の緩和テスト |
Cache-Control |
キャッシュ動作の確認 |
X-Frame-Options |
iframe埋め込み制限のテスト |
Overridesフォルダの構造
オーバーライドしたファイルは、URLに基づいた階層構造で保存される。
devtools-overrides/
├── example.com/
│ ├── css/
│ │ └── style.css
│ ├── js/
│ │ └── main.js
│ └── api/
│ └── users.json
└── cdn.example.com/
└── lib/
└── library.min.js
この構造により、複数サイトのオーバーライドを同一フォルダで管理できる。サイトごとにフォルダが分けられるため、整理しやすい。
Overridesの管理
有効/無効の切り替え
Sourcesパネル → Overridesタブ → Enable Local Overridesチェックボックスで切り替え。
個別ファイルの削除
操作手順
- Sourcesパネル → Overridesタブ
- 削除したいファイルを右クリック
- Deleteを選択
すべてのOverridesを削除
OverridesタブのClearボタン(🚫アイコン)をクリック。
Overridesの一覧表示
Networkパネルでリクエストを右クリック → Show all overridesで、現在有効なすべてのオーバーライドを確認できる。
Changesタブで差分を確認
オーバーライドで変更した内容はChangesタブで差分として確認できる。
操作手順
- Ctrl+Shift+Pでコマンドパレットを開く
- 「Show Changes」と入力してEnter
- または、DevTools右上の「⋮」→ More tools → Changes
Changesタブには、変更したすべてのファイルが一覧表示され、各ファイルの差分がGit風のdiff形式で表示される。変更内容を確認してから本番コードに反映する際に便利。
制限事項
- ElementsパネルでのDOM変更は保存されない:HTMLの変更はSourcesパネルで行う必要がある
- HTMLファイル内のCSSは保存されない:外部CSSファイルのみオーバーライド可能。インラインスタイルやstyleタグ内のCSSは対象外
- キャッシュは自動無効化:Overrides有効時はブラウザキャッシュが無効になる
- Source Mapファイルは対象外:元のソースではなくビルド後のファイルをオーバーライドする
実践的なユースケース
1. 本番環境のバグ調査
本番サイトでのみ発生するバグを調査する際、コードにログを追加したり、条件を変更して原因を特定できる。
2. デザイン変更の提案
クライアントへの提案前に、実際のサイトでCSSを変更してスクリーンショットを撮影。説得力のあるプレゼンテーションが可能。
3. パフォーマンス実験
サードパーティスクリプトを削除または軽量版に置き換え、パフォーマンスへの影響を測定。
4. フロントエンド単独開発
バックエンドAPIの開発が完了する前に、モックレスポンスを使ってフロントエンドを開発・テスト。
5. A/Bテストのシミュレーション
本番サイトのUIを変更し、ユーザビリティテストを実施。実装前に効果を検証できる。
[1] Override web content and HTTP response headers locally - Chrome DevTools. developer.chrome.com
[2] What's New In DevTools (Chrome 65) - Local Overrides. developer.chrome.com
[3] Override webpage resources with local copies - Microsoft Edge DevTools. learn.microsoft.com