构建文件的 ReactJS 资源路径

Posted

技术标签:

【中文标题】构建文件的 ReactJS 资源路径【英文标题】:ReactJS resource paths of built files 【发布时间】:2018-03-09 01:14:57 【问题描述】:

我有一个 ReactJS 项目,它会生成静态文件,以便在 npm run build 之后提供服务。这些文件是index.htmlmain.ef19974a.jsmain.f06643f6.css

html 文件引用了这些其他文件中的每一个,但作为绝对路径。这意味着当为客户端提供html 文件时,它会尝试在主机上搜索/static/js/main.ef19974a.js,而不是从与提供服务的index.html 文件相同的目录中搜索static/js/main.ef19974a.js

有没有办法让 React 在构建步骤中创建相对路径引用或允许我们提供工作目录?

临时有效的解决方法是手动修改生成的 index.html 文件以引用 jscss 文件,但当我包含其他资源(例如未从 index.html 引用的图像并默认返回)时失败到这些文件的绝对路径。

【问题讨论】:

"homepage": "/folder" 添加到您的package.json (对我来说,这是在构建过程完成时在终端右侧说明的) @ChrisG 完美!谢谢你。如果您将其发布为答案,我会接受:) 【参考方案1】:

您可以使用homepage 键在package.json 中设置将包含index.html 的文件夹:

    ...
    "devDependencies": 
        "react-scripts": "1.0.10"
    ,

    "homepage": "/myapp",   // website will be hosted at http://hostname/myapp

    "scripts": 
        "start": "react-scripts start",
        "build": "react-scripts build",
        "test": "react-scripts test --env=jsdom",
        "toolbox": "react-toolbox-themr",
        "eject": "react-scripts eject"
    ,
    ... 

【讨论】:

以上是关于构建文件的 ReactJS 资源路径的主要内容,如果未能解决你的问题,请参考以下文章

资源分享 | Reactjs精品视频教程

使用 ReactJS 上传图片

reactjs:提供到公共文件夹的文件在生产构建中解析为 404 错误,但在开发中使用 npm start

在 ReactJs 中基于动态路径加载图像

通过在 ReactJs 中循环来路由路径和组件名称

reactjs - redux 表单和材质 ui 框架 - 拖放文件上传器