forked from cadence/breezewiki
		
	Try to add Link header to preload resources
This commit is contained in:
		
							parent
							
								
									ac17f40329
								
							
						
					
					
						commit
						cea9d2082b
					
				
					 2 changed files with 18 additions and 4 deletions
				
			
		| 
						 | 
					@ -30,7 +30,8 @@
 | 
				
			||||||
           html-writing))
 | 
					           html-writing))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define always-headers
 | 
					(define always-headers
 | 
				
			||||||
  (list (header #"Referrer-Policy" #"same-origin"))) ; header to not send referers to fandom
 | 
					  (list (header #"Referrer-Policy" #"same-origin") ; header to not send referers to fandom
 | 
				
			||||||
 | 
					        (header #"Link" (string->bytes/latin-1 link-header))))
 | 
				
			||||||
(define timeouts (easy:make-timeout-config #:lease 5 #:connect 5))
 | 
					(define timeouts (easy:make-timeout-config #:lease 5 #:connect 5))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (application-footer source-url #:license [license-in #f])
 | 
					(define (application-footer source-url #:license [license-in #f])
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,14 +1,16 @@
 | 
				
			||||||
#lang typed/racket/base
 | 
					#lang typed/racket/base
 | 
				
			||||||
(require racket/path
 | 
					(require racket/path
 | 
				
			||||||
         racket/runtime-path)
 | 
					         racket/runtime-path
 | 
				
			||||||
 | 
					         racket/string)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(provide
 | 
					(provide
 | 
				
			||||||
 get-static-url)
 | 
					 get-static-url
 | 
				
			||||||
 | 
					 link-header)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-runtime-path path-static "../static")
 | 
					(define-runtime-path path-static "../static")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define static-data
 | 
					(define static-data
 | 
				
			||||||
  (for/hash ([f (directory-list path-static)]) : (Immutable-HashTable Path Nonnegative-Integer)
 | 
					  (for/hash : (Immutable-HashTable Path Nonnegative-Integer)([f (directory-list path-static)])
 | 
				
			||||||
    (define built (simple-form-path (build-path path-static f)))
 | 
					    (define built (simple-form-path (build-path path-static f)))
 | 
				
			||||||
    (values built (file-or-directory-modify-seconds built))))
 | 
					    (values built (file-or-directory-modify-seconds built))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,3 +20,14 @@
 | 
				
			||||||
                                         path-or-filename
 | 
					                                         path-or-filename
 | 
				
			||||||
                                         (build-path path-static path-or-filename))))
 | 
					                                         (build-path path-static path-or-filename))))
 | 
				
			||||||
  (format "/static/~a?t=~a" (file-name-from-path the-path) (hash-ref static-data the-path)))
 | 
					  (format "/static/~a?t=~a" (file-name-from-path the-path) (hash-ref static-data the-path)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(: link-header String)
 | 
				
			||||||
 | 
					(define link-header
 | 
				
			||||||
 | 
					  (let* ([with-t '("main.css")]
 | 
				
			||||||
 | 
					         [with-t-full (map get-static-url with-t)]
 | 
				
			||||||
 | 
					         [without-t '("preact.js" "source-sans-pro-v21-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2")]
 | 
				
			||||||
 | 
					         [without-t-full (map (λ (path) (format "/static/~a" path)) without-t)])
 | 
				
			||||||
 | 
					    (string-join
 | 
				
			||||||
 | 
					     (for/list : (Listof String) ([full-path : String (append with-t-full without-t-full)])
 | 
				
			||||||
 | 
					       (format "<~a>; rel=\"preload\"" full-path))
 | 
				
			||||||
 | 
					     ", ")))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue