【问题标题】:How to dynamically store some css, font-style file to react's public folder?如何动态存储一些css,字体样式文件到反应的公共文件夹?
【发布时间】:2020-03-06 18:05:44
【问题描述】:

我正在使用带反应的电子进行 epub 项目,并使用 epub 解析 epub 文件。通过这个解析器,我能够获取cssttf 这些文件。但是,这些文件不会以常规方式提供。例如,对于当前部分的 html,可能要导入 <link href="flow0003.css" rel="stylesheet" type="text/css"> 之类的 css,而不会加载此 css 文件。

要解决这个问题,是否可以将一些文件动态存储到 react 的公共文件夹中?

我一直在网上搜索,但出于安全原因,似乎不可能这样做。我还搜索了与电子类似的方法,但似乎没有可用的建议,因为该项目使用电子和反应。

顺便说一句,我可以像这样动态注入样式: Book.tsx

  useEffect(() => {
    const css = Object.values(book.manifest).filter(({ href }) => href.endsWith('.css'));

    Promise.all(css.map(c => getCss(book, c.id)))
      .then(arr => arr.join('\n'))
      .then(styles => {
        if (!ref.current) return;
        ref.current.setAttribute('style', styles);
      });
  }, [book]);

但是,字体文件的嵌套导入无论如何都不起作用。

那么 Electron 是否可以通过 react 将样式表、字体文件存储到其公用文件夹中(并且以后也需要删除)?

我知道可以用 html 解析 img,style 的数据。例如,使用 react 的 dom.setAttribute 动态注入样式表。同理,img标签,可以像<img src={data:${mimeType};base64, ${imgData.toString('base64')}}>一样直接注入图片数据。那么是否有任何等效的加载字体的方法?

【问题讨论】:

    标签: css reactjs electron styles font-face


    【解决方案1】:

    使用electron的ipcMain和ipcRenderer进行通信,electron有资产到文件系统。

    【讨论】:

      猜你喜欢
      • 2020-01-21
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      • 2022-06-12
      • 1970-01-01
      相关资源
      最近更新 更多