VSCodeでHTMLプレビューが表示されない主な原因

採用はこちら

VSCodeでHTMLファイルを作成していると、「プレビューが表示されない」「画面が真っ白になる」「CSSやJavaScriptが反映されない」といったトラブルが起こることがあります。

原因はHTMLそのものの記述ミスだけとは限りません。

ファイル形式、VSCodeのプレビュー方法、拡張機能、相対パス、JavaScriptエラー、ローカルサーバー、リモート開発環境など、さまざまな要因が考えられます。

原因を一つずつ切り分けて確認することが大切です。

目次

HTMLファイルとして正しく認識されていない

ファイルの拡張子を確認する

まず確認したいのが、対象ファイルがHTMLファイルとして保存されているかどうかです。

通常は、次のようなファイル名にします。

index.html

または、

index.htm

一方、次のようなファイル名になっていると、HTMLファイルとして正しく扱われない可能性があります。

index
index.html.txt
index.htm.txt

Windowsではファイル拡張子が非表示になっていることもあるため、実際にはindex.html.txtになっていないか確認しましょう。

VSCodeの言語モードを確認する

VSCodeの画面右下には、現在のファイルをどの言語として認識しているかが表示されています。

HTMLファイルを開いている場合は、基本的に「HTML」と表示されます。

「Plain Text」などになっている場合は、右下の言語モードをクリックして「HTML」を選択します。

HTMLのプレビュー方法を間違えている

Markdownのプレビュー機能とは異なる

VSCodeにはMarkdown用のプレビュー機能があります。

WindowsやLinuxでは、一般的に次のショートカットでMarkdownプレビューを表示できます。

Ctrl + Shift + V

しかし、この機能はMarkdown向けであり、HTMLプレビューとは別の機能です。

そのため、HTMLファイルを開いた状態で同じショートカットを押しても、期待したHTMLプレビューが表示されないことがあります。

Integrated BrowserからHTMLを開く

現在のVSCodeにはIntegrated Browserが用意されており、HTMLファイルをVSCode内で確認できます。

HTMLファイルを開き、右クリックメニューなどから、

Open in Integrated Browser

を選択すると、VSCode内にHTMLページを表示できます。

VSCodeのバージョンによってメニューの表示位置や利用できる機能が異なる場合があるため、項目が見つからない場合はVSCodeを最新版へ更新してみましょう。

VSCodeのバージョンが古い

古い解説記事と現在の仕様が異なる場合がある

VSCodeは頻繁にアップデートされているため、数年前の解説記事と現在の操作方法が異なることがあります。

特にHTMLプレビューについては、Integrated Browser関連の機能が追加・改善されています。

そのため、

「解説記事に書かれているボタンがない」

「同じ操作をしてもプレビューが表示されない」

という場合は、VSCodeのバージョンの違いを確認してみましょう。

Windowsでは、メニューから、

Help
↓
About

などを開くとバージョンを確認できます。

Live Previewがインストールされていない

Live PreviewはMicrosoft提供の拡張機能

HTMLをローカルサーバー経由で確認したい場合は、Microsoftが提供している「Live Preview」拡張機能を利用できます。

VSCode左側のExtensionsを開き、

Live Preview

と検索します。

発行元がMicrosoftであることを確認してインストールします。

Live Previewを利用すると、HTMLファイルをローカルサーバー経由で表示できるため、通常のブラウザに近い環境で動作確認できます。

ただし、Live PreviewはVSCode本体の標準機能ではありません。

整理すると、次のような違いがあります。

Integrated Browser
→ VSCode本体の機能

Live Preview
→ Microsoftが提供している拡張機能

参考サイト

VSCode「Live Preview」の使い方完全ガイドHTML・CSS・JSを即時プレビュー – きになる~

Live Previewが無効になっている

拡張機能の有効状態を確認する

Live Previewをインストールしていても、拡張機能が無効化されている場合は利用できません。

ExtensionsからLive Previewを開き、「Enable」が表示されていないか確認します。

また、VSCodeではワークスペース単位で拡張機能を無効化できます。

そのため、

「別のプロジェクトでは使えるのに、このプロジェクトでは使えない」

という場合は、ワークスペースだけでLive Previewが無効化されていないか確認してみましょう。

プロジェクトフォルダを開いていない

HTMLファイル単体でも利用できる

Live Previewは、必ずしもプロジェクトフォルダを開かなければ利用できないわけではありません。

HTMLファイル単体でもプレビューできる場合があります。

ただし、Web制作ではプロジェクトのルートフォルダをVSCodeで開いたほうが、CSSやJavaScript、画像などのパスを管理しやすくなります。

たとえば、次のような構成があるとします。

my-site/
├── index.html
├── css/
│   └── style.css
├── js/
│   └── main.js
└── images/
    └── logo.png

この場合は、index.htmlだけを開くのではなく、my-siteフォルダ全体をVSCodeで開くのがおすすめです。

メニューから、

File
↓
Open Folder

を選択してプロジェクトフォルダを開きます。

HTMLファイルが保存されていない

更新されない場合は一度保存して確認する

使用しているプレビュー方法や設定によって、変更内容が反映されるタイミングは異なります。

Integrated BrowserやLive Previewでは編集内容が自動的に反映される場合もありますが、設定によっては保存時に更新されることもあります。

表示が更新されない場合は、一度、

Ctrl + S

を押して保存してみましょう。

Macの場合は、

Command + S

です。

また、自動保存を利用したい場合は、

File
↓
Auto Save

を有効にできます。

HTMLの構文に問題がある

最小構成のHTMLで確認する

HTMLのタグ構造が大きく崩れていると、期待した表示にならないことがあります。

問題を切り分ける場合は、まず簡単なHTMLだけで表示できるか確認すると効果的です。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>表示テスト</title>
</head>
<body>
    <h1>HTMLが表示されています</h1>
</body>
</html>

このコードが正常に表示される場合、VSCodeそのものではなく、元のHTMLやCSS、JavaScript側に問題がある可能性が高いと判断できます。

タグの閉じ忘れを確認する

たとえば、次のようなコードではタグ構造が崩れています。

<div>
    <p>テキスト
</div>

最近のブラウザはある程度HTMLを自動補正しますが、意図しないDOM構造になる場合があります。

VSCodeのエラー表示やHTML検証機能も活用しながら確認しましょう。

CSSによって何も表示されていない

HTMLではなくCSSが原因の場合もある

プレビュー画面自体は開いているのに何も見えない場合は、CSSを確認します。

たとえば、次のCSSではページ全体が非表示になります。

body {
    display: none;
}

また、

opacity: 0;

や、

visibility: hidden;

が設定されている場合も、要素が見えなくなります。

文字色と背景色が同じ場合も注意が必要です。

body {
    color: white;
    background: white;
}

この場合、HTMLは正常に表示されていますが、文字が背景と同化して見えません。

CSSファイルのパスが間違っている

相対パスを確認する

HTMLは表示されるものの、CSSだけが反映されない場合は、CSSファイルへのパスを確認しましょう。

たとえば、次の構成の場合、

project/
├── index.html
└── css/
    └── style.css

HTML側は次のように記述できます。

<link rel="stylesheet" href="css/style.css">

一方、次の構成なら、

project/
├── css/
│   └── style.css
└── pages/
    └── index.html

index.htmlから見たCSSのパスは次のようになります。

<link rel="stylesheet" href="../css/style.css">

相対パスは、HTMLファイルが存在する場所を基準に考えることが重要です。

JavaScriptファイルのパスが間違っている

script要素のsrc属性を確認する

JavaScriptが動かない場合も、ファイルパスが間違っている可能性があります。

たとえば、

project/
├── index.html
└── js/
    └── main.js

なら、HTMLでは次のように指定できます。

<script src="js/main.js"></script>

ファイルパスを間違えていると、ブラウザの開発者ツールで、

404 Not Found

などが表示されることがあります。

JavaScriptエラーが発生している

Consoleを確認する

JavaScriptによってページ内容を生成している場合、JavaScriptエラーが原因で画面が空になることがあります。

たとえば、

document.getElementById("sample").textContent = "Hello";

と記述しているにもかかわらず、HTML側にid="sample"の要素が存在しない場合、getElementById()はnullを返します。

その状態で.textContentを操作するとエラーが発生します。

ブラウザの開発者ツールを開き、Consoleに、

TypeError
ReferenceError
SyntaxError

などが表示されていないか確認しましょう。

file://で開いていることが原因

ローカルサーバー経由で確認する

HTMLファイルを直接ブラウザで開くと、URLが次のようになることがあります。

file:///C:/...

HTMLやCSSだけの単純なページであれば問題ないケースも多いですが、JavaScriptで一部のWeb APIや外部ファイルを扱う場合、ブラウザのセキュリティ制限によって正常に動作しないことがあります。

たとえば、

fetch("./data.json")

のような処理です。

このような場合は、ローカルWebサーバーを利用し、

http://localhost:xxxx/

のようなURLから開くと解決する場合があります。

Live Previewなどを使えば、ローカルサーバー環境を比較的簡単に用意できます。

ReactやVueなどを通常のHTMLプレビューで開いている

フレームワークは開発サーバーを利用する

React、Vue、Next.js、Viteなどを使ったプロジェクトでは、HTMLファイルを直接プレビューする方法が適さない場合があります。

これらのプロジェクトでは、多くの場合、開発サーバーを起動して確認します。

たとえばViteを利用している場合は、

npm run dev

を実行します。

その後、ターミナルに表示された、

http://localhost:5173/

などのURLへアクセスします。

ポート番号は環境や設定によって異なる場合があります。

Next.jsでも、一般的には、

npm run dev

を実行して開発サーバーを起動します。

そのため、ReactやVueなどでプレビューできない場合は、HTMLプレビュー機能ではなく、使用しているフレームワークの開発サーバーが正常に起動しているかを確認しましょう。

拡張機能が原因になっている

不要な拡張機能を一時的に無効化する

HTMLプレビューやローカルサーバー関連の拡張機能を複数導入している場合、設定や使用ポートなどの関係で原因を特定しにくくなることがあります。

たとえば、

Live Preview
Live Server
HTML Preview系拡張機能

などです。

複数インストールしているだけで必ず競合するわけではありませんが、問題が解決しない場合は不要な拡張機能を一時的に無効化して確認するとよいでしょう。

VSCodeの一時的な不具合が発生している

ウィンドウを再読み込みする

拡張機能をインストールした直後や設定変更後に正常に動作しない場合は、VSCodeのウィンドウを再読み込みすると改善することがあります。

コマンドパレットを開き、

Ctrl + Shift + P

次のコマンドを検索します。

Developer: Reload Window

実行後に、もう一度HTMLプレビューを試してみましょう。

Remote SSHやWSLなどを利用している

ポートフォワーディングを確認する

VSCodeを次のような環境で利用している場合は、通常のローカル環境とは確認方法が異なることがあります。

Remote SSH
WSL
Dev Containers
GitHub Codespaces

たとえばRemote SSHでは、Webサーバー自体がリモートマシン上で動作している場合があります。

そのため、必要に応じてVSCodeの「Ports」機能を使い、リモート側のポートをローカルPCへ転送します。

たとえば、リモートサーバーでポート3000のWebサーバーが動いている場合でも、ポートフォワーディングを行うことでローカルブラウザからアクセスできます。

リモート環境でHTMLプレビューが表示されない場合は、HTMLだけではなく、ポート設定も確認しましょう。

vscode.devを利用している

ブラウザ版VSCodeには機能制限がある

ブラウザから利用できる、

vscode.dev

では、デスクトップ版VSCodeと同じ機能がすべて利用できるわけではありません。

拡張機能についても、Web環境に対応しているものと対応していないものがあります。

そのため、HTMLプレビューやローカルサーバー関連の機能が正常に利用できない場合は、デスクトップ版VSCodeで動作確認してみるのも一つの方法です。

HTMLプレビューが真っ白な場合の対処法

HTML・CSS・JavaScriptを順番に切り分ける

プレビュー画面は表示されるものの、中身が真っ白な場合は次の順番で確認すると原因を特定しやすくなります。

まず、HTMLファイルを保存します。

次に、body内へ直接文字を書いて表示されるか確認します。

<body>
    <h1>表示テスト</h1>
</body>

これが表示される場合は、HTMLプレビューそのものは正常に動作している可能性が高くなります。

その後、

  • CSSを一時的に外す
  • JavaScriptを一時的に外す
  • CSSやJavaScriptのファイルパスを確認する
  • ブラウザのConsoleを確認する
  • Networkで404エラーが出ていないか確認する

といった順番で原因を切り分けていきます。

VSCodeでHTMLプレビューが表示されないときの確認手順

基本的な項目から順番に確認する

原因が分からない場合は、次の順番で確認すると効率的です。

1. ファイル名が.htmlになっているか確認する
↓
2. VSCodeの言語モードがHTMLになっているか確認する
↓
3. HTMLファイルを保存する
↓
4. Integrated Browserで開けるか確認する
↓
5. VSCodeを最新版へ更新する
↓
6. Live Previewを利用する場合は有効になっているか確認する
↓
7. プロジェクトルートをVSCodeで開く
↓
8. 最小構成のHTMLで表示をテストする
↓
9. CSSとJavaScriptを一時的に外す
↓
10. CSS・JavaScript・画像の相対パスを確認する
↓
11. ConsoleとNetworkのエラーを確認する
↓
12. 拡張機能を一時的に無効化して確認する
↓
13. Remote SSHなどの場合はポート設定を確認する

VSCodeでHTMLプレビューが表示されない場合は原因を切り分けよう

VSCodeでHTMLプレビューが表示されない場合、必ずしもVSCode自体に問題があるとは限りません。

HTMLファイルの拡張子、言語モード、CSSやJavaScriptのパス、JavaScriptエラー、ローカルサーバー、拡張機能など、複数の原因が考えられます。

まずは最小構成のHTMLが表示できるか確認し、その後CSS、JavaScript、画像などを順番に追加していくと、原因を特定しやすくなります。

また、現在のVSCodeではIntegrated Browserを利用してHTMLを確認できます。

よりWebサーバーに近い環境で確認したい場合は、Microsoftが提供しているLive Previewを利用する方法もあります。

ReactやVue、Next.jsなどを利用している場合は、通常のHTMLプレビューではなく、それぞれの開発サーバーから確認することが重要です。

表示されないときは一度に多くの設定を変更するのではなく、HTML、CSS、JavaScript、サーバー環境を順番に切り分けながら確認すると、効率的に問題を解決できます。

以上、VSCodeでHTMLプレビューが表示されない主な原因についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次