【问题标题】:Reactjs, electron assets FolderReactjs,电子资产文件夹
【发布时间】:2019-05-23 16:35:01
【问题描述】:

我需要从带有子目录的目录中动态加载图像。我将文件夹图像添加到 src,只要我使用 yarn start 启动应用程序,它就可以工作。但是该文件夹未打包到 dist 构建中。我试图将文件夹添加到 package.json

     "build": {
             "files":"images"
    }

我尝试使用公共目录,例如:

texturesPath = process.env.PUBLIC_URL +'/assets/data/textures/'

我知道如何导入图像,但我需要包含 200 个子目录的整个目录。我必须单独导入每张图片吗?

【问题讨论】:

  • 我在文档中找到了以下解释:“请注意,我们通常鼓励您在 JavaScript 文件中导入资产”我不同意,因为如果您在 459 个子文件夹中有 32566 个文件怎么办?作为一种解决方法,他们说我应该将所有内容放在公用文件夹中并使用 process.env.PUBLIC_URL facebook.github.io/create-react-app/docs/… 访问文件夹我是刚刚找到答案还是有其他方法可以添加目录?

标签: reactjs electron electron-builder


【解决方案1】:
"build": {
         "files":"images"
}

设置后,您的images 将被打包到app.asar,因此您只需调用path.join(__dirname, '/images/'); 即可访问此文件夹。

您可以在安装应用后提取app.asar 并检查images 目录是否在其中 (%localappdata%/programs/[YOUR_APP_NAME]/resources/app.asar)。

【讨论】:

  • 'textureUrl = path.join(__dirname, '/assets/data/textures')' 好的,文件在那里并且开发(纱线开始)工作。但是 dist build 我加载资源失败:net::ERR_FILE_NOT_FOUND
  • @martomstom 请提取您的 app.asar 并显示结果github.com/electron/asar
  • 文件在 app 文件夹中。我不需要将“文件”:“图像”添加到 package.json。文件在那里,但我得到了错误。
  • 现在可以使用了! imageURL = path.join(__dirname, '/assets/data/textures/');或 process.env.PUBLIC_URL +'/assets/data/textures/' 不起作用。我将其更改为 imageURL = '/assets/data/textures/' 现在它可以工作了。我的资产放错地方了吗?
  • @martomstom 据我了解,您没有将您的应用打包到 asar 中,不是吗?
猜你喜欢
  • 2011-09-13
  • 2015-07-26
  • 2012-03-10
  • 1970-01-01
  • 1970-01-01
  • 2014-05-04
  • 2020-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多