如何动态存储一些css,字体样式的文件以响应公共文件夹?

问题描述 投票:0回答:1

我正在使用带有react的电子的epub项目,并使用epub解析epub文件。通过此解析器,我可以获取cssttf这些文件。但是,这些文件将无法正常使用。例如,对于当前部分的html可能想要导入css之类的<link href="flow0003.css" rel="stylesheet" type="text/css">,而不会加载此css文件。

要解决此问题,是否可以存储一些文件来动态响应公共文件夹?

我一直在网上搜索,由于安全原因,似乎无法进行搜索。我也曾搜索过类似的电子方法,但由于该项目正在使用电子与反应,因此似乎没有任何建议。

顺便说一下,我能够像这样动态地注入样式: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]);

但是,字体文件的嵌套improt仍然无法工作。

那么电子可能会做出反应,将样式表,字体文件存储到其公用文件夹中(并且以后也需要删除)?

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

css reactjs electron styles font-face
1个回答
0
投票

使用电子的ipcMain和ipcRenderer进行通信,并且电子具有资产到文件系统。

© www.soinside.com 2019 - 2024. All rights reserved.