从子目录提供react应用程序时出现脚本错误



我正在尝试从子目录中为react应用程序(使用craco创建(提供服务(https://my-domain/app)。按照本指南的步骤,并将nginx-config的位置修改为/app,我确实得到了静态内容,但一些块在Chrome中生成了以下错误:

未捕获的语法错误:意外的标记"<"。。。main.b5d3f270.chunk.js:1

深入挖掘,我注意到nginx返回的是html页面,而不是纯javascript代码,并且有问题的<(可能(是<!doctype html>:的开始

<!doctype html>
<html lang="en">
<head>
...
</head>
<body><noscript>You need to enable JavaScript to run this app.</noscript>
...
<script>
!function...
</script
</body>

只有当我从子文件夹提供应用程序时才会发生这种情况。

知道问题出在哪里吗?

在这里可以找到一个类似的、没有答案的问题。

事实上,问题出在nginx配置上,而不是React。我缺少一个指令,告诉nginx忽略URL的"app"部分,并从不同的目录加载文件。通过以下操作解决了问题:

location /app {
alias /usr/share/nginx/html;
try_files $uri $uri/ /app/index.html =404;           
}

这里和这里都讨论了类似的解决方案。

相关内容

最新更新