ホームページ >ウェブフロントエンド >jsチュートリアル >ページをリロードすると Vite React アプリの MIME エラーが発生する
サーバーがルーティングを処理するように正しく構成されていないために、Vite React アプリでページをリロードするときに MIME タイプ エラーが発生することがよくあります。この問題は、クライアント側ルーティングが使用される React アプリなどのシングルページ アプリケーション (SPA) でよく発生します。ルート以外のルートでページをリロードすると、サーバーはそれを処理する方法がわからず、MIME タイプ エラーまたは 404 エラーが発生します。
この問題を解決するための解決策をいくつか示します:
Vite の開発サーバーを使用してアプリをローカルで実行している場合は、vite.config.js に基本構成を追加して、サーバーがパスを正しく解決できるようにすることができます。
// vite.config.js import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; export default defineConfig({ plugins: [react()], base: '/', // Ensure this points to the correct base server: { open: true, // Configure server to return index.html for unknown routes hmr: true, }, });
アプリをデプロイし、運用環境でこのエラーが発生した場合は、常にindex.htmlを提供することでクライアント側のルーティングを処理するようにサーバーが設定されていることを確認してください。
例:
server { listen 80; server_name yourdomain.com; location / { root /path/to/your/build; try_files $uri /index.html; } }
.htaccess ファイルをビルド フォルダーに追加します:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L] </IfModule>
Express で Node.js を使用してアプリを提供している場合は、次のミドルウェアを追加して、不明なルートの Index.html を提供します。
const express = require('express'); const path = require('path'); const app = express(); app.use(express.static(path.join(__dirname, 'dist'))); app.get('*', (req, res) => { res.sendFile(path.resolve(__dirname, 'dist', 'index.html')); }); const PORT = process.env.PORT || 3000; app.listen(PORT, () => console.log(`Server running on port ${PORT}`));
アプリがサブディレクトリ (https://example.com/app など) にデプロイされている場合は、vite.config.js で基本オプションを設定します。
// vite.config.js export default defineConfig({ base: '/app/', // Adjust according to your deployment path plugins: [react()], });
react-router-dom を使用している場合は、クライアント側のルーティングに (HashRouter ではなく) BrowserRouter を使用していることを確認してください。 BrowserRouter は、Vite がよくサポートしている HTML5 履歴 API を使用します。
import { BrowserRouter } from 'react-router-dom'; function App() { return ( <BrowserRouter> {/* your app routes here */} </BrowserRouter> ); } export default App;
これらの設定では、サーバーが未知のルートに対してindex.htmlを提供し、Viteとアプリのルーターがページのリロード時にナビゲーションを適切に処理できるようにすることで、MIMEタイプの問題を解決する必要があります。
以上がページをリロードすると Vite React アプリの MIME エラーが発生するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。