簡體   English   中英

在服務器端口 5000 上運行應用程序時出錯,Uncaught SyntaxError: Unexpected token '<' and Manifest: Line: 1, column: 1, Syntax error

[英]Errors when running app on server port 5000, Uncaught SyntaxError: Unexpected token '<' and Manifest: Line: 1, column: 1, Syntax error

我正在用 React (create-react-app) 中的聯系表構建一個投資組合。 為此,我需要一些后端,以便用戶可以向我的電子郵件地址發送消息。 一切正常。 但是現在我想使用 heroku 將應用程序部署到 web。但是,當我通過嘗試在服務器端口 localhost:5000 上運行應用程序來運行測試時,我得到標題中顯示的這兩個錯誤,以及一個空白文檔
未捕獲的語法錯誤:意外的標記“<”
清單:行:1,列:1,語法錯誤。
我的 manifest.json 文件看起來沒問題。 會不會是在static文件夾下找不到css文件?

項目文件夾結構

應用結構

服務器

const express = require('express')
const router = express.Router()
const cors = require('cors')
const nodemailer = require('nodemailer')
const hbs = require('nodemailer-express-handlebars')
const path = require('path')
const colors = require('colors')
const bcrypt = require('bcrypt');
const dotenv = require('dotenv')

const PORT = process.env.REACT_APP_PORT || 5000

const app = express()
app.use(cors())
dotenv.config()
app.use(express.json())

app.use(express.static(path.join(__dirname, '../myportfolio/build')))
app.get('*', (req, res) => {
    res.sendFile(path.resolve(__dirname, '../myportfolio', 'build', 'index.html'))
})

//removed nodemailer code

app.listen(PORT, () => console.log(`Server up and running in ${process.env.REACT_APP_NODE_ENV} 
on port ${PORT} !`.yellow))

我的清單.json

{
  "short_name": "Portfolio",
  "name": "my name,  Portfolio",
   "icons": [
{
  "src": "discoballicon.ico",
  "sizes": "64x64 32x32 24x24 16x16",
  "type": "image/x-icon"
},
{
  "src": "logo192.png",
  "type": "image/png",
  "sizes": "192x192"
},
{
  "src": "logo512.png",
  "type": "image/png",
  "sizes": "512x512"
}
],
  "start_url": ".",
  "display": "standalone",
  "theme_color": "#000000",
  "background_color": "#ffffff"
}

問題已解決,在 github 上找到了答案:
https://github.com/facebook/create-react-app/issues/1812
運行 npm 構建時,您可以看到:

該項目是在假定托管在 /portfolio/ 的情況下構建的。
您可以通過 package.json 中的主頁字段進行控制。

問題是服務器上的路徑不正確。 它看起來像這樣:

app.use(express.static(path.join(__dirname, '../frontend/build/static')))

它必須是:

app.use('/showcaseportfolio', express.static(path.join(__dirname, '../frontend/build')))

現在它在 localhost:5000/portfolio 上運行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM