Reactで小さなアプリを作成し、いくつかの簡単なルートを設定しました。私のlocalhost上のクライアントで正常に動作します。すべてのJSコードは1つのファイルにバンドルされ、index.htmlファイルによってアクセスされます。サーバーに展開すると、すべてがクライアント側であるため、ルートへの要求は機能しません。React SSR:Error Uncaught SyntaxError:予期しないトークン<
これを修正するために、ExpressJSを使用してインデックスファイルを提供するためのチュートリアルをいくつか見てみました。どのルートでもクライアントアプリケーションを読み込むことができます。問題は、私がインデックスファイルを提供するとき、それは私にHTMLファイルを返し、私はこのエラーを受け取ります:app.js:1 Uncaught SyntaxError: Unexpected token <
と私はなぜこれが起こり、どのようにこれを解決できるのか分かりません。スクリプトタグを削除するたびに、HTMLだけでファイルが正しく配信されます。私が見つけた他の情報源はあまり役に立ちませんので、この時点で何をすべきか分かりません。これを解決するために何をする必要がありますか?
は、ここに私のサーバーのファイルです:
const express = require('express')
const path = require('path')
const port = process.env.PORT || 3000
const app = express()
app.use(express.static(__dirname + '/dist'))
app.get('*', function (request, response){
response.sendFile(path.resolve(__dirname, '../dist', 'index.html'))
})
app.listen(port)
そして、ここに私のインデックスファイルは、速達で提供しています:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<title>app</title>
<!-- build:css css/app.min.css -->
<link rel="stylesheet" href="css/main.css">
<!-- endbuild -->
</head>
<body>
<div id="app"></div>
<!-- build:js js/app.min.js -->
<script src="js/app.js"></script>
<!-- endbuild -->
</body>
</html>
ありがとう!