如何将一些 css、字体样式的文件动态存储到 react 的公共文件夹中?



我正在进行一个epub项目,使用带有react的electron,并使用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]);

然而,字体文件的嵌套改进无论如何都不会起作用。

那么,电子是否有可能与react一起将样式表、字体文件存储到其公共文件夹中(稍后也需要删除(?

我知道可以用html解析img,即样式的数据。例如,使用react的dom.setAttribute动态注入样式表。类似地,对于img标签,可以像<img src={data:${mimeType};base64, ${imgData.toString('base64')}}>一样直接注入图像的数据。那么,有没有类似的方法来加载字体?

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

最新更新