(define (serve-script config uri)
;; Scripts are responsible for the entire response, including header
- (let ((path (document-path config uri)))
- (apply (eval (with-input-from-file path read))
- (list uri))))
+ (let* ((path (document-path config uri))
+ (proc (eval (with-input-from-file path read))))
+ (with-current-working-directory
+ (pathname-directory (document-path config uri))
+ (lambda ()
+ (apply proc (list uri))))))
(define (with-current-working-directory directory thunk)
(let ((old-wd (current-directory))