我目前正在为我的学院开发一个GWT应用程序(源代码:https://github.com/eufarn7sp/asmm-eufar-java)。出于测试目的,我在我自己的服务器上安装了Tomcat 8(业余的东西,托管已经是一个apache php服务器,为我和我的朋友提供一个php论坛,没什么关键),并在其上部署我的应用程序。可通过以下链接访问:http://176.31.165.18:8080/asmm-eufar/
由于我想删除URL(反向代理)中的IP地址和端口号,我按照教程激活了apache的mod_proxy。这是链接:http://www.orion-universe.eu/asmm-eufar/。 99%的应用程序都可以正常工作。但似乎我的应用程序无法在浏览器选项卡中修改标题。它应显示“ASMM Creator”并在用户修改表单后进行更新。我使用通常的命令来设置窗口标题:
Window.setTitle("blablabla");
由于我不是服务器管理方面的专家,我无法在这里看到我做错了什么。这是我在apache的conf文件中使用的代码:
<VirtualHost *:80>
ServerName orion-universe.eu
ProxyRequests On
ProxyPass /asmm-eufar http://localhost:8080/asmm-eufar
ProxyPassReverse /asmm-eufar http://localhost:8080/asmm-eufar
<Location "/asmm-eufar">
Order allow,deny
Allow from all
</Location>
</VirtualHost>
答案 0 :(得分:0)
服务器无法控制标题的设置或更改方式。
相反,您的代理服务器之外的其他内容正在发生 - 您的orion-universe.eu
服务器实际上并未代理该调用,而是显示一个只有<iframe>
的HTML页面...然后指向该页面在原始页面:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>www.orion-universe.eu</title>
</head>
<frameset>
<frame src="http://176.31.165.18/asmm-eufar/" name="redir">
<noframes>
<p>Original location:
<a href="http://176.31.165.18/asmm-eufar/">http://176.31.165.18/asmm-eufar/</a>
</p>
</noframes>
</frameset>
</html>
然后会在框架中加载http://176.31.165.18/asmm-eufar/
,因此无法控制外部页面的标题(这就是加载http://176.31.165.18/asmm-eufar/和http://www.orion-universe.eu/asmm-eufar/的原因不同的原因最初的头衔)。
您的proxy-pass 看起来是正确的,但其他原因导致了这一点 - 找出iframe的html文件的位置,并查看可能导致您的服务器为其提供服务的原因。
在重新阅读proxypass时,有一件事突然出现在我身上:你正在重定向到localhost:8080,但是你的服务器并没有在那里运行:
ProxyPass /asmm-eufar http://localhost:8080/asmm-eufar
你的意思是说
ProxyPass /asmm-eufar http://176.31.165.18:8080/asmm-eufar
第二行相同。这似乎假设您有两个不同的服务器,一个是另一个的代理,但仍然没有说明为什么显示iframe,除非localhost:8080正在服务?
答案 1 :(得分:0)
尝试使用Document.get().setTitle(title);
我假设您指的是文档窗口。