特定 event.request 的 If 语句

If statement for specific event.request

我的 service worker index.js 中有以下代码来显示所有事件请求 urls:

self.addEventListener('fetch', functin(event) {
  console.log(event.request.url);
});

这样所有请求 url 都列在控制台中。我需要的是一个简单的 if 语句来检查请求 url 是否以 .jpg 结尾。到目前为止,我尝试使用 if === '.jpg' 或变体或 image/jpg 但它并不能解决问题。

您可以使用 String.prototype.endsWith:

if (event.request.url.endsWith('.jpg')) {
    console.log(event.request.url);
}

如果此代码将成为 运行 浏览器,请注意 Internet Explorer 尚不支持此功能,因此您可能需要使用 polyfill.

例如

if (event.request.url.endsWith('.jpg')) {
    console.log(event.request.url);
    //handling response you may replace it with somthing
     event.respondWith(fetch('/imgs/avatar.jpg'));
}