【问题标题】:reactjs: files served into public folder resolve into a 404 error in production build but work in development with npm startreactjs:提供到公共文件夹的文件在生产构建中解析为 404 错误,但在开发中使用 npm start
【发布时间】:2021-03-25 09:04:13
【问题描述】:

我正在尝试为 web 程序包提供 javascript 所需的 2 个文件。文件 example.wasm 和 example.data 位于 react js 项目文件结构中的 public 文件夹中。在使用 npm start 与开发服务器一起运行时,项目可以找到文件并且可以正确读取这些文件。构建项目时,文件按预期最终位于项目的根目录中。尽管使用文件的当前 PUBLIC_URL 路径,但无法找到文件,但 Web 控制台中的路径似乎是正确的。

我从 IIS 7 托管 reactjs 应用程序。

您能帮我解决上述问题的调试过程吗?

提前感谢您的帮助。

【问题讨论】:

  • @LexLi 非常感谢您的回答,通过启用失败的请求跟踪,我在 IIS 生成的日志中发现了以下错误:当我的应用程序请求文件时,SECURITY_DENIED_BY_MIMEMAP。我在 IIS 配置中添加了 mime 类型的 .wasm 和 .data 文件。我猜它们并不常见,也没有添加到默认配置中。
  • 您可以发布自己的答案并接受它。 FRT 非常好用,以后可以用在其他场景中。
  • 您的问题解决了吗?如果解决了,请分享你的答案,以便帮助更多遇到此问题的人。

标签: reactjs iis http-status-code-404 webassembly public-folders


【解决方案1】:

在@LexLi 的帮助下,我按照此文档在 IIS 中启用了失败的请求跟踪模块:

[https://docs.microsoft.com/en-us/iis/troubleshoot/using-failed-request-tracing/troubleshooting-failed-requests-using-tracing-in-iis][1]

阅读失败请求跟踪模块生成的日志,我看到当从服务器请求文件 example.wasm 和 example.data 时,实际错误不是 404 Not Found,而是:

SECURITY_DENIED_BY_MIMEMAP

在谷歌搜索上述错误后,我意识到在 IIS 中配置的默认 MIME 类型不包括扩展名为 .data 和 .wasm 的文件。使用 IIS 管理中 Web 服务器级别中的 MIME 类型模块将这些 MIME 类型添加到 IIS 配置并重新启动服务器后,问题得到解决。

【讨论】:

    猜你喜欢
    • 2018-12-04
    • 1970-01-01
    • 2020-02-09
    • 2019-02-07
    • 2021-07-19
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    相关资源
    最近更新 更多