chore(sw): only proxies HTML requests (#9070)
* chore(sw): only proxies HTML requests もはやHTMLじゃなさそうなリクエストにはSWで関与しないようにする こうするといろいろな面倒事が解決するはず…たぶん Resolve #9037 Resolve #9038 * align code style * Update packages/sw/src/sw.ts Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com> Co-authored-by: syuilo <Syuilotan@yahoo.co.jp> Co-authored-by: tamaina <tamaina@hotmail.co.jp> Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
This commit is contained in:
		
							parent
							
								
									d4b146e77a
								
							
						
					
					
						commit
						e60a6cc621
					
				
					 1 changed files with 10 additions and 0 deletions
				
			
		|  | @ -24,6 +24,16 @@ self.addEventListener('activate', ev => { | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| self.addEventListener('fetch', ev => { | self.addEventListener('fetch', ev => { | ||||||
|  | 	let isHTMLRequest = false; | ||||||
|  | 	if (ev.request.headers.get('sec-fetch-dest') === 'document') { | ||||||
|  | 		isHTMLRequest = true; | ||||||
|  | 	} else if (ev.request.headers.get('accept')?.includes('/html')) { | ||||||
|  | 		isHTMLRequest = true; | ||||||
|  | 	} else if (ev.request.url.endsWith('/')) { | ||||||
|  | 		isHTMLRequest = true; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if (!isHTMLRequest) return; | ||||||
| 	ev.respondWith( | 	ev.respondWith( | ||||||
| 		fetch(ev.request) | 		fetch(ev.request) | ||||||
| 		.catch(() => new Response(`Offline. Service Worker @${_VERSION_}`, { status: 200 })) | 		.catch(() => new Response(`Offline. Service Worker @${_VERSION_}`, { status: 200 })) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue