在 CPanel 上部署 Node.js React 应用程序 - “加载资源失败:服务器响应状态为 404 ()”

Posted

技术标签:

【中文标题】在 CPanel 上部署 Node.js React 应用程序 - “加载资源失败:服务器响应状态为 404 ()”【英文标题】:Deploying a Node.js React App, on CPanel - 'Failed to load resource: the server responded with a status of 404 ()' 【发布时间】:2019-08-11 21:46:37 【问题描述】:

我将构建文件夹上传到 CPanel public_html 文件夹,但是当我转到域“https://domain-name/build/”时,我只是得到一个空白页。当我查看页面源时,静态 js 和 css 文件出现“加载资源错误:服务器响应状态为 404 ()”。非常感谢任何帮助。

【问题讨论】:

您可以在本地环境中运行此静态构建吗?试试 Chrome 网络服务器,看看你是否有同样的错误。 我并不是说要运行“npm start”,因为它没有通过节点服务器使用您的静态构建和此命令。您需要查看您的构建配置并确保错误不是来自那里。 你在用create-react-app吗? 【参考方案1】:

您似乎正在从一个子目录(/build)为您的应用程序提供服务。要使其正常工作,您必须让前端构建器知道您在子目录中为您的应用程序提供服务。执行以下操作以使其工作, 我假设您使用的是create-react-app

    首先,将basename 属性添加到您的路由中,

    <Router basename='/build'>
      /* your Route config */
    </Router>
    

    homepage 属性更新为package.json 文件,

    "homepage": "https://yourdomain/build",
    

    同时更新路线

    <Router basename='/build'>
      <Route path=`$process.env.PUBLIC_URL/` component=Home />
    </Router>
    

    process.env.PUBLIC_URI 变量将在构建时替换为 homepage

    更改您的反应 Link 组件中所有出现的 to 属性

    <Link to=`$process.env.PUBLIC_URL/page`> ... </Link>
    

现在,您的应用程序应该可以在 https://yourdomain/build 下运行。

【讨论】:

是的,我正在使用 create-react-app。我马上试试,谢谢你的帮助!

以上是关于在 CPanel 上部署 Node.js React 应用程序 - “加载资源失败:服务器响应状态为 404 ()”的主要内容,如果未能解决你的问题,请参考以下文章

cpanel node.js 无法获取应用程序的锁:应用程序

为啥我的 cpanel 没有在软件中显示设置 node.js 应用程序图标?

如何将数据从 Heroku 上托管的 Node.js 应用程序发送到托管在完全独立(Cpanel)服务器上的 PHP 文件?

如何在 Cpanel 中为 Node.js 应用程序配置端口?

通过nodejs在共享cpanel主机上实现websocket服务器

Cpanel 中缺少“设置 Node.js 应用程序”按钮