如何从 asar 存档中提供静态文件

Posted

技术标签:

【中文标题】如何从 asar 存档中提供静态文件【英文标题】:How to serve static files from an asar archive 【发布时间】:2016-07-13 07:25:41 【问题描述】:

我正在尝试构建一个带有服务器组件的电子应用程序,使用 express 进行远程控制。

express 模块初始化为

var staticPath = path.resolve('app/assets')

setupNotifications(server);

app.use(cors());
app.use('/api/', json());
app.use('/api/', router);
app.use('/assets', express.static(staticPath));
console.log('serving static files from : ' + staticPath);

Elecron docs 提到当前工作目录不能设置为 asar 存档中的文件夹。错误消息证实了这一点,表明正在尝试从安装根文件夹下的“app/assets”读取文件。

如何让 express 从 ASAR 存档中读取文件?我怎样才能做到这一点,以便我可以使用“爆炸”存档进行开发并使用构建存档进行部署?

【问题讨论】:

您是否找到了一种解决方法来提供来自 asar 的静态文件?我有完全相同的问题.. 我遇到了同样的问题,我通过在文件中包含 app 文件夹并 asarUnpack 解决它:“build”:“files”:[“app/**/*”],“ asarUnpack":[ "app/**/*" ] 然后你可以从 'resources/app.asar.unpacked/app' 托管 但是这个解决方案非常难看:app 被集成了两次。我没能成功解压普通版本。 【参考方案1】:

我遇到了同样的问题。它使用相对路径对我有用。 express 提供的静态文件与 express 初始化的文件保存在同一目录中。下面你可以看到我的工作代码的 sn-p:

const myStaticPath = './static'
app.use('/previewer', express.static(path.join(__dirname, myStaticPath)))

干杯!尼库

【讨论】:

以上是关于如何从 asar 存档中提供静态文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用目录名称中的句点从 Asp .Net Core 提供静态文件

如何从 CDN 提供 GWT 静态文件

如何从数据库获取/发送/提供/(使可访问)数据到静态 jquery 文件?从快速 EJS 到静态 Jquery?

如何从 EKS 集群为 Django 提供静态文件?

如何将动态 (PHP) 网站存档为静态 HTML? [关闭]

如何通过节点 expressjs 从 s3 提供静态网站?