lobsite! ログイン アカウント作成

Vue アプリホスティング

Vite で作った Vue アプリをホストできます。コマンド 1 つで dist/ をデプロイし、Vue Router の history モードは spa = true かスイッチ 1 つで動作します。アカウント不要で無料で試せます。

Vite は dist/ にビルドし、npx lobsite がそれを検出してデプロイします。
HTML ファイル、フォルダ、または .zip をドロップ ブラウザ内で確認します。公開するまで何もアップロードされません。

npm create vue@latest で作成した Vue アプリは、Vite によって dist/ にビルドされます。1 つの index.html と、すべてのページを描画する JavaScript です。Lobsite はそのフォルダをホストします。npm run build を実行してから npx lobsite を実行すると、HTTPS 対応の *.lobsite.app アドレスでアプリが公開されます。シングルページモードをオンにすると、Vue Router の history モードが機能します。

仕組み

  1. npm run build でアプリをビルドします。Vite は dist/ に書き出します。
  2. プロジェクトで npx lobsite を実行します。デプロイされるのは dist/ で、Vite がビルドにコピーする public/ ではありません。最初のデプロイにアカウントは不要で、6 時間有効です。
  3. Vue Router のためにシングルページモードをオンにします。lobsite.toml の spa = true、またはサイト設定の シングルページアプリ です。取得リンクから無料アカウントにサイトを残してください。

Vue Router の history モード

import { createRouter, createWebHistory } from "vue-router";

const router = createRouter({
  history: createWebHistory(),
  routes,
});
  • createWebHistory() は /projects/7 のようなきれいなアドレスになります。直接開くとサーバーに存在しないファイルを要求しますが、シングルページモードが index.html で応答し、Vue Router が正しいビューを表示します。
  • createWebHashHistory()(/#/projects/7 のようなアドレス)は、サーバーが / しか見ないためシングルページモードなしで動作します。共有や検索エンジンにはきれいなアドレスのほうが適しています。
  • キャッチオールルート(path: "/:pathMatch(.*)*")は、アプリ独自の「ページが見つかりません」ビューの置き場所です。シングルページモードでは、不明なページパスはすべてアプリに届くためです。

Nuxt と Vue CLI

  • Nuxt は npx nuxi generate で静的サイトを .output/public/ にビルドします。このフォルダは自動で検出されないため、一度 npx lobsite .output/public と指定すると lobsite.toml に記憶されます。各ページは独立したファイルとして生成されるため、シングルページモードが必要なのは Nuxt が生成しなかったルートのみです。Nuxt のサーバールートとサーバーレンダリングには Node を実行するホストが必要です。
  • Vue CLI(@vue/cli-service)はメンテナンスモードで、新しいプロジェクトは Vite を使います。既存の Vue CLI プロジェクトは dist/ にビルドされ、同じ方法でデプロイできます。
シングルページアプリ

lobsite.toml に spa = true を書くか、ダッシュボードのスイッチをオンにするだけです。ディープリンクでアプリが開き、存在しないファイルは引き続き 404 になります。

変更されたファイルのみアップロード

ファイルはハッシュで保存されます。変更のないサイトを再デプロイしてもアップロードは 0 バイトです。

デプロイごとに URL を発行

公開前にプレビューできます。リダイレクトも含めてワンクリックでロールバックできます。

すべてに HTTPS

すべてのサイトに、最初のデプロイから HTTPS 対応の *.lobsite.app アドレスが付きます。

すぐに使えるフォーム

フォームの送信先を /_lobsite/forms/contact にするだけです。スパムフィルターも含まれます。

アカウントなしで試せる

アカウントなしのデプロイは 6 時間公開されます。取得リンクから無料で残せます。

Vue ホストの比較

Lobsite Netlify Vercel GitHub Pages
Vue Router の history モード spa = true、またはダッシュボードのスイッチ _redirects のルール vercel.json のリライト いいえ: hash モード、またはステータス 404 で配信する 404.html
デプロイ後に存在しないスクリプトファイル 404(明確なエラー) アプリの index.html アプリの index.html 404
Nuxt のサーバーレンダリング いいえ はい はい いいえ
最初のデプロイ前のアカウント 不要: 6 時間公開、その後無料で残せる 必要 必要 必要(リポジトリも)
バックエンド不要のフォーム はい(サイトをアカウントに残した後) はい いいえ いいえ
カスタムドメイン はい、無料 はい はい はい

ブラウザで動く Vue アプリなら、Lobsite はコマンド 1 つで dist/ を公開アドレスに変えられ、history モードも設定 1 つで、デプロイごとにプレビュー URL が付きます。

よくある質問

Vue Router のページを再読み込みすると「Not found」と表示されるのはなぜですか?

history モードのアドレスはアプリの中にしか存在しません。シングルページモードをオン(lobsite.toml の spa = true、またはサイト設定の シングルページアプリ)にすると、これらのパスで index.html が開きます。

Lobsite の Vue アプリは hash モードと history モードのどちらを使うべきですか?

シングルページモードをオンにした history モードです。アドレスがきれいで、検索エンジンは別々のページとして扱います。hash モードは、サーバーの設定を変更できない場合にのみ価値があります。

Nuxt サイトを Lobsite にデプロイできますか?

はい、生成されたサイトなら可能です。npx nuxi generate を実行してから npx lobsite .output/public を実行してください。サーバールートなど、Nuxt のサーバーが必要なページは実行されません。

Vue アプリで「ページが見つかりません」ビューを表示するには?

ルートの最後にキャッチオールルート { path: "/:pathMatch(.*)*", component: NotFound } を追加してください。シングルページモードでは不明なページパスがすべてアプリに届くため、ルーターが表示内容を決定します。

関連項目