【发布时间】:2016-06-06 12:48:07
【问题描述】:
我使用 Clojure(Luminus 框架)构建了一个网站,并将 Tomcat 9.0 部署到 Linux 服务器。
我已经在公司网络上完成了这项工作,我可以使用http://localIP:8080 和http://externalIP:8080 浏览网站
但我在客户端网络中安装,相同的 Linux 发行版 (Debian),相同的 Tomcat 9 和 Java 版本 (1.8)。
问题是我可以通过http://localIP:8080 浏览网站,但是当我转到http://externalIP:8080 时,它只加载部分标题/标题(见下图)。
我通过tomcat日志无法弄清楚,输出与我网络中的相同。
我猜这是某种端口或 ip 冲突,但我该如何调试呢?我无法控制此网络,因为它来自客户端。
提前感谢。
编辑
经过一些测试,我得到了一些东西。
这是我的渲染函数:
(layout/render
"trocar-senha.html" {:request request
:titulo (slurp (io/resource "docs/titulo.txt") :encoding "UTF-8")
:nome_empresa (slurp (io/resource "docs/nome_empresa.txt"))
:site_empresa (slurp (io/resource "docs/site_empresa.txt"))
:warning "Senha atual não confere com senha cadastrada no sistema."})
我减少到 2 个键(仅请求和标题)并且它有效。但为什么?它在本地工作。我需要所有的钥匙。
【问题讨论】:
-
我相信,您可以在代码或 html 中混合一些 url。例如,如果您通过“localhost:port/resource_path/resource”使用您的资源(js 脚本、图片等),那么它可以在本地工作,但不能在外部网络中工作
-
在 DB 连接中我使用 localip:port/db,clojure 中的资源路径通过 key :resource-paths ["resources"] 引用到 project.clj。在我的公司,我可以通过本地和外部 IP 地址访问,但在我的客户端中安装时不能
-
浏览器中的开发者工具可能会提供信息来帮助解决问题。
-
我检查过但什么也没得到。我已经进行了一些测试,并且出现了一些问题。在我的渲染函数中,我有
(layout/render "home.html" {:request request :title website :website website :text text :name name})但如果我将它减少到 2 或 3,它工作正常。但为什么?我需要所有这些......