为什么 hunchentoot 不在 ec2 AWS 上提供我的图像?

问题描述 投票:0回答:1

我已经在 aws ec2 实例上部署了 hunchentoot 服务器,一切运行良好,但我的图像仅在本地呈现,即本地主机,但是当在 ec2 实例上启动并运行时,我收到与图像相关的 404 错误。

我的图像所在的目录

server.lisp
和目录
static/
位于同一目录中。

server.lisp
我有这个代码:

(define-easy-handler (lisp-handler :uri "/lispy") ()
  (setf (hunchentoot:content-type*) "image/png")
  (setf (header-out "Access-Control-Allow-Methods") "GET, OPTIONS")
  (setf (header-out "Access-Control-Allow-Headers") "Content-Type")
  (setf (header-out "Access-Control-Allow-Origin") "http://myhomepage.info, http://localhost:4243")
  (handle-static-file "static/lisp.png"))

(define-easy-handler (sicp-handler :uri "/wizard") ()
  (setf (hunchentoot:content-type*) "image/jpg")
  (setf (header-out "Access-Control-Allow-Methods") "GET, OPTIONS")
  (setf (header-out "Access-Control-Allow-Headers") "Content-Type")
  (setf (header-out "Access-Control-Allow-Origin") "http://myhomepage.info, http://localhost:4243")
    (handle-static-file "static/sicp.jpg"))

(hunchentoot:define-easy-handler (index :uri "/") ()
  (setf (hunchentoot:content-type*) "text/html")
    (format nil 
        "<!doctype html>
<html>
<head>
 <meta charset=\"UTF-8\">
    <title>Jobs Compilers</title>
</head>
<body>
<h3> ..</h3>
<p><img src=\"http://myhomepage.info/wizard\"  alt=\"wiz\" width=\"300\" height=\"300\" align=\"left\">....<img src=\"http://myhomepage.info/lispy\" alt=\"lispy\" width=\"300\" height=\"300\" align=\"right\">
<hr />
</body>
</html>"))
(defvar *server*
  (make-instance 'hunchentoot:easy-acceptor
                 :port 4243
         :document-root #p"static"))

我不太清楚为什么会发生这种情况。正如我所说,它可以在 localhost:4243 上运行,但是当我部署它时它不起作用。

我已经检查了 ec2 实例上静态目录的权限,一切看起来都很好。所以我不确定。

有人指点一下吗?

common-lisp hunchentoot
1个回答
0
投票

默认监听

:address
"127.0.0.1"
,您可能需要提供与可从外部访问的网络接口关联的地址。一般来说,人们也使用
nginx
作为网关,在这种情况下,您只能在本地网络上提供网页,而
nginx
会将请求传递到您的服务器。

© www.soinside.com 2019 - 2024. All rights reserved.