将反应项目部署到 github 页面面临公共文件夹中图像的问题

Posted

技术标签:

【中文标题】将反应项目部署到 github 页面面临公共文件夹中图像的问题【英文标题】:Deploying react project to github pages face problem for image in public folder 【发布时间】:2021-11-23 12:15:03 【问题描述】:

我在 Github 上部署我的 react js 项目时遇到了麻烦。

简而言之,html 文件中的 javascript 运行良好,但我放在公共文件夹中的所有图像和 PDF 文件似乎都未被服务器读取。这些图像和 PDF 文件存在于 BUILD 文件夹中,但无法在页面上显示。控制台中每个图像的错误消息是:

[加载资源失败:服务器响应状态为404()]

你们怀疑可能是什么问题?是不是因为我直接用<img src="/barbell.svg">引用了那些图片,所以部署后它们无法匹配图片文件名?

Image and PDF in BUILD folder

Github page and error message in the console

【问题讨论】:

【参考方案1】:

如果您的图片位于公共文件夹中,请尝试使用<img src=process.env.PUBLIC_URL + "/barbell.svg">

【讨论】:

天哪,成功了!你能告诉我更多关于为什么它应该这样表达吗?非常感谢你!!!! public 文件夹包含 Webpack 不接触的静态文件,因此它不是构建的一部分,生产构建只包含这些文件的直接副本。因此,您需要使用process.env.PUBLIC_URL 进行部署。但是,最好不要将图像存储在公用文件夹中,您可以在create-react-app.dev/docs/using-the-public-folder查看更多信息

以上是关于将反应项目部署到 github 页面面临公共文件夹中图像的问题的主要内容,如果未能解决你的问题,请参考以下文章

无法将反应应用程序部署到 github 页面 404 错误

如何部署 django 后端并将前端应用程序反应到同一域

使用 keycloak 保护特定的反应页面

如何将nuxt项目部署到github pages (码云 pages) 上

GitHub 页面部署问题

如何使用服务器地址和密码部署反应项目