如何从 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 提供静态文件
如何从数据库获取/发送/提供/(使可访问)数据到静态 jquery 文件?从快速 EJS 到静态 Jquery?