使用 Apache 作为代理时,无法使用 playframework 为静态资源生成正确的 URL
我使用 Apache 服务器作为我的 playframework 应用程序的代理。代理配置文件是这样的:
> <VirtualHost *:80>
> ProxyPreserveHost Off
> ServerAdmin [email protected]
> DocumentRoot "/home/admin/www"
> ServerName viform.net
> ErrorLog "logs/viform.net-error.log"
> ProxyPass /zh-cn/ http://localhost:9000/
> ProxyPassReverse /zh-cn/ http://localhost:9000/
> </VirtualHost>
当我访问 http://viform.net/zh-cn/signin< /a>,它显示了正确的页面。但页面中静态资源的url不正确。生成的html页面代码是这样的:
...
<script type="text/javascript" src="/public/javascripts/base.js">
</script>
<script type="text/javascript" src="/public/javascripts/secure/submitbutton.js">
</script>
<script type="text/javascript" src="/public/javascripts/secure/signinpanel.js">
</script>
...
浏览器找不到这些资源,因为它们的src路径应该以“/zh-cn”开头。 有谁可以帮我解决这个问题吗?谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Play Group 中有一些关于此主题的帖子,并且还有一个关于 SO 如何在 Play Framework 的配置文件中使用“war.context”? 类似。
如果您在 GoogleGroups,您将看到预期的配置是在路由文件中指定上下文。例如..
您可以将以下内容放入您的应用程序conf文件中。
There are a few posts on this topic in the Play Group, and there is another question on SO how to use "war.context" in Configuration file of Play Framework ? that is similar.
If you look at this post on GoogleGroups, you will see that the expected configuration is to specify the context in your routes file. For example..
Where you would put the following in your app conf file.
从 play-1.2.2 开始,conf/application.conf 中有一个新的配置属性,名为
在您的示例中,尝试像这样设置它:
它应该可以工作。
As of play-1.2.2 there is a new configuration property in conf/application.conf called
In your example, try setting it like this:
it should work.