Merge pull request 'handler: add single page application handler' (#176) from spa-handler into master
Reviewed-on: #176
This commit was merged in pull request #176.
	This commit is contained in:
		
							
								
								
									
										19
									
								
								handler/spa/spa.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								handler/spa/spa.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | package spa | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"io/fs" | ||||||
|  | 	"net/http" | ||||||
|  | 	"strings" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // Handler serve files from dir and redirect to index if file not exists | ||||||
|  | var Handler = func(prefix string, dir fs.FS) http.HandlerFunc { | ||||||
|  | 	return func(w http.ResponseWriter, r *http.Request) { | ||||||
|  | 		f := http.StripPrefix(prefix, http.FileServer(http.FS(dir))) | ||||||
|  | 		if _, err := fs.Stat(dir, strings.TrimPrefix(r.RequestURI, prefix)); err != nil { | ||||||
|  | 			r.RequestURI = prefix | ||||||
|  | 			r.URL.Path = prefix | ||||||
|  | 		} | ||||||
|  | 		f.ServeHTTP(w, r) | ||||||
|  | 	} | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user