Don't redirect to static resources: avoids a redirect loop in some configurations. Instead, just supply links to static resources for the next hop.

This commit is contained in:
Tony Garnock-Jones 2015-01-27 13:50:07 -05:00
parent 17e769739b
commit b54d6a685f

View File

@ -105,7 +105,7 @@
;; " Download") ;; " Download")
;; "http://download.racket-lang.org/") ;; "http://download.racket-lang.org/")
)) ))
(bootstrap-static-urlprefix (if (use-cache?) static-urlprefix "")) (bootstrap-static-urlprefix (if (rendering-static-page?) static-urlprefix ""))
(jsonp-baseurl backend-baseurl)) (jsonp-baseurl backend-baseurl))
body ...)) body ...))
@ -583,11 +583,6 @@
(define package-name-list (package-search "" '((main-distribution #f)))) (define package-name-list (package-search "" '((main-distribution #f))))
(authentication-wrap (authentication-wrap
#:request request #:request request
(cond
[(and (use-cache?) (not (rendering-static-page?)))
;; Redirect to static version
(bootstrap-redirect (main-page-url))]
[else
(bootstrap-response "Racket Package Index" (bootstrap-response "Racket Package Index"
#:title-element "" #:title-element ""
#:body-class "main-page" #:body-class "main-page"
@ -613,7 +608,7 @@
`(div `(div
(p ((class "package-count")) (p ((class "package-count"))
,(format "~a packages" (length package-name-list))) ,(format "~a packages" (length package-name-list)))
,(package-summary-table package-name-list)))])))) ,(package-summary-table package-name-list))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -630,16 +625,11 @@
(define package-name (string->symbol package-name-str)) (define package-name (string->symbol package-name-str))
(define pkg (package-detail package-name)) (define pkg (package-detail package-name))
(define default-version (package-default-version pkg)) (define default-version (package-default-version pkg))
(cond (if (not pkg)
[(and (use-cache?) (not (rendering-static-page?)))
;; Redirect to static version
(bootstrap-redirect (view-package-url package-name))]
[(not pkg)
(bootstrap-response #:code 404 (bootstrap-response #:code 404
#:message #"No such package" #:message #"No such package"
"Package not found" "Package not found"
`(div "The package " (code ,package-name-str) " does not exist."))] `(div "The package " (code ,package-name-str) " does not exist."))
[else
(bootstrap-response (~a package-name) (bootstrap-response (~a package-name)
#:title-element "" #:title-element ""
`(div ((class "jumbotron")) `(div ((class "jumbotron"))
@ -797,7 +787,7 @@
,@(for/list ((mod (package-modules pkg))) ,@(for/list ((mod (package-modules pkg)))
(match-define (list kind path) mod) (match-define (list kind path) mod)
`(li ((class ,kind)) ,path))))) `(li ((class ,kind)) ,path)))))
))]))) )))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;