我正在使用
现在,我想创建一个
因此,在
这样做会导致Webpack无法编译Service Worker包,因为我不能在包文件中使用
webpacker
gem(版本4.0.7)为Rails 6 RC2应用程序提供支持,并且还使用serviceworker-rails
中间件gem(版本0.6.0)将Service Worker与Rails集成。现在,我想创建一个
serviceworker.js
pack文件(我从serviceworker-rails
README文件中复制并修改),以便它可以由Webpack提供服务,并使用serviceworker-rails
中间件路由。因此,在
app/javascript/packs/serviceworker.js.erb
(安装了erb-loader
)中,我这样做:function onInstall(event) {
console.log('[Serviceworker]', "Installing!", event);
event.waitUntil(
caches.open(CACHE_NAME).then(function prefill(cache) {
return cache.addAll([
'<%= asset_pack_path "application.js" %>',
'<%= asset_pack_path "application.css" %>',
'/offline.html',
]);
})
);
}
...
这样做会导致Webpack无法编译Service Worker包,因为我不能在包文件中使用
asset_pack_path
(在编译之前甚至不能获取已编译包的路径)。所以问题是,如何在我的Service Worker脚本中引用已编译的JS和CSS包的路径,以便Service Worker可以缓存这些文件?