.htaccess React浏览器路由器获取语法错误意外标记'〈'

g52tjvyc  于 2022-11-16  发布在  React
关注(0)|答案(2)|浏览(881)

我有一个react网站,在本地运行良好,使用react浏览器路由器。当我构建它并将构建文件夹放在我的托管webhost(dreamhost)上时,到其他页面的路由不起作用。app.js

<Router>
      <Header />
      <Routes>
        <Route exact path="/" element={<Home />} />
        <Route path="/contact" element={<ContactPage />} />
      </Routes>
      <Footer />
    </Router>

我遵循了以下指南:https://www.andreasreiterer.at/fix-browserrouter-on-apache/
建议添加一个.htaccess文件

Options -MultiViews
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.html [QSA,L]

因此,在添加了带有这些行的htaccess文件后,我的托管react网站现在可以正确地路由到页面(而之前它是404)。唯一的问题是,现在当我访问这些页面时,我只会得到控制台错误消息:

2.6c645178.chunk.js:1 Uncaught SyntaxError: Unexpected token '<' (at 2.6c645178.chunk.js:1:1)
main.2e7dd33a.chunk.js:1 Uncaught SyntaxError: Unexpected token '<' (at main.2e7dd33a.chunk.js:1:1)
manifest.json:1 Manifest: Line: 1, column: 1, Syntax error.

根据我在网上找到的东西,它似乎把页面当作html,而不把它当作javascript。有人对我如何解决这个问题有什么建议吗?我看到的建议提到在script标签中添加lang=。但在我的react应用程序中,我没有任何script标签。

6kkfgxo0

6kkfgxo01#

1.请查阅react router文档并搜索路由器组件上的basename prop
1.您得到的错误可能是JSON没有被正确解析的地方。尝试在代码中找到JSON.parse(),看看是否可以用某种方法修复它

11dmarpk

11dmarpk2#

我想出了解决办法。在尝试添加一个基名称(如一个评论者所建议的)后,我意识到路由正在工作,因为页面在具有基名称的子目录中工作。
原来在package.json的主页上,我只需要添加一个“/"。因此,不要使用“主页”:“http://website.com“我将其更改为http://website.com/
之前我有过“主页”:““。因为某些指南建议在部署到Web服务器时把它放在那里,所以它使用任何文件夹。显然,我必须有我的网站的公共URL,沿着结尾的/来修复路由。

相关问题