easy-acceptor 忽略 :document-root 选项;不提供静态文件
easy-acceptor ignoring :document-root option; not serving static files
我正在尝试使用项目中 www
目录中的 Hunchentoot 提供静态文件。我的接受者定义为:
(defvar *acceptor* (make-instance 'easy-acceptor
:port 4242
:document-root (truename "./www/")))
然后我开始:
(start *acceptor*)
接受器有效,因为我可以使用 define-easy-handler
创建根页面:
(define-easy-handler (index :uri "/") ()
(with-html-output-to-string (_)
(:html
(:head
(:title "Hello world")
(:body
(:h1 "Hello world!))))))
...当我浏览到 http://localhost:4242/ 时,我看到了那个页面。
但是我的 www
目录中没有静态文件。例如。如果我创建 www/jquery-3.2.1.min.js
并浏览到 http://localhost:4242/jquery-3.2.1.min.js,我会收到 404.
127.0.0.1 - [2017-08-11 08:08:02] "GET /jquery-3.2.1.min.js HTTP/1.1" 404 355 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:54.0) Gecko/20100101 Firefox/54.0"
HELLOWORLD> (directory (make-pathname :directory '(:relative "www") :name :wild :type "js"))
(#P"/usr/home/duncan/code/helloworld/www/jquery-3.2.1.min.js")
您必须确保目录及其中的文件设置了适当的权限。目录需要有executex
权限才能让服务器程序访问目录的内容,文件至少需要readr
权限。
我正在尝试使用项目中 www
目录中的 Hunchentoot 提供静态文件。我的接受者定义为:
(defvar *acceptor* (make-instance 'easy-acceptor
:port 4242
:document-root (truename "./www/")))
然后我开始:
(start *acceptor*)
接受器有效,因为我可以使用 define-easy-handler
创建根页面:
(define-easy-handler (index :uri "/") ()
(with-html-output-to-string (_)
(:html
(:head
(:title "Hello world")
(:body
(:h1 "Hello world!))))))
...当我浏览到 http://localhost:4242/ 时,我看到了那个页面。
但是我的 www
目录中没有静态文件。例如。如果我创建 www/jquery-3.2.1.min.js
并浏览到 http://localhost:4242/jquery-3.2.1.min.js,我会收到 404.
127.0.0.1 - [2017-08-11 08:08:02] "GET /jquery-3.2.1.min.js HTTP/1.1" 404 355 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:54.0) Gecko/20100101 Firefox/54.0"
HELLOWORLD> (directory (make-pathname :directory '(:relative "www") :name :wild :type "js"))
(#P"/usr/home/duncan/code/helloworld/www/jquery-3.2.1.min.js")
您必须确保目录及其中的文件设置了适当的权限。目录需要有executex
权限才能让服务器程序访问目录的内容,文件至少需要readr
权限。