我将一个文件放入我的
/public
文件夹中,位置为 /public/.well-known/apple-developer-merchantid-domain-association
。 当我在开发模式下运行 React 时,我可以访问此文件:https://mydomain/.well-known/apple-developer-merchantid-domain-association。 如果我在生产模式下运行 React (npm run react-scripts build
),那么该文件将无法访问。
我注意到,如果我向相关文件添加文件类型(即 /public/.well-known/apple-developer-merchantid-domain-association.json),则可以访问该文件。 看起来 Webpack 或 React 使用的任何底层构建工具都排除了没有文件类型的文件。
有没有办法覆盖此行为,以便没有文件类型的文件可以正确包含在生产版本中(如果它们存储在
/public
中)? 我正在使用 React 18.2
将
public
文件夹复制到 build
文件夹的步骤由构建脚本处理,而不是由 Webpack 处理。它使用 copySync
中的 node-fs-extra
。我还没有尝试过这个库,但我们可以假设这个函数不能处理没有扩展名的文件。
现在要解决这个问题,如果您决定坚持使用 CRA,我想您可以使用不同的解决方案:
craco
或 react-app-rewired
覆盖 Webpack 配置,并使用 CopyWebpackPlugin
复制文件
patch-package
或类似工具修复 build
脚本的代码(假设可以修补此文件)