按照here指令,我的网站可以正常显示内容。 但是,处理表单提交是当前的问题。
我在我的环境中设置了虚拟主机。内容呈现很好,但表单提交最终会在空白页面中显示。
我的表单位于http://mysite.local/contact
我的虚拟主机http://mysite.local与http://localhost:8080/site匹配
我的表单遵循开发人员的说法:
<@hst.actionURL var="actionUrl"/>
<form id="" class="form" action="${actionUrl}" method="post">
当我点击提交时,我被重定向到空白页面:http://localhost:8080/contact?r14_r1_r1:u_u_i_d=5641b2fe-10ad-41b2-8f30-06d8a59ff451
使用我的自定义组件,我打印出了serverName和它的#34; localhost&#34;!
如何在控制台中配置它,以便我的服务器是&#34; mysite.local&#34;而不是&#34; localhost&#34;?
@Override
public void doBeforeRender(final HstRequest request,
final HstResponse response)
throws HstComponentException {
super.doBeforeRender(request, response);
l.info(request.getServerName());
}
更新: 我根据Joeren的建议添加了节点。
然而它仍然无法正常工作。 我的活动删除了&#34; localhost&#34; orstally在hst下的节点:hosts&gt;&gt; dev-localhost但它破坏了网站。
我注意到了&#34; hst:hosts&#34;将hst:defaulthostname设置为&#34; localhost&#34;。 我还没敢做出改变,因为我认为这是不可逆转的。
更新:
我的虚拟主机配置(nginx)如下:
server {
# listen 80;
server_name mysite.local;
location /site/ {
proxy_pass http://localhost:8080/site/;
# include /etc/nginx/proxy_params;
}
location /cms/ {
proxy_pass http://localhost:8080/cms/;
# include /etc/nginx/proxy_params;
}
location / {
proxy_pass http://localhost:8080/site/;
# include /etc/nginx/proxy_params;
}
}
答案 0 :(得分:1)
要重定向到完全限定的域名,您需要在CMS JCR控制台的HST配置树中设置虚拟主机。
如果mysite.local是本地计算机上的域,则可以将其放在dev-localhost主机组中。通过创建以下节点:
HST:HST + hst:主持人 + dev-localhost +本地 +谜 + hst:root
有关更多背景信息,请参阅hosts configuration documentation。 如果您有像apache这样的Web服务器,请确保您启用了proxypreserve主机,以便HST可以检测到主机。有关详细信息,请参阅Apache webserver configuration documentation。
答案 1 :(得分:0)
传递主机名解决问题!感谢Jeroen的评论
但是,无需更新控制台中的hst:hosts
配置。
我已将我的nginx配置更新为:
server {
# listen 80;
server_name mysite.local;
location /site/ {
proxy_pass http://localhost:8080/site/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
location /cms/ {
proxy_pass http://localhost:8080/cms/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
location / {
proxy_pass http://localhost:8080/site/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}