2013-03-10 46 views
2

我测试用钢轨和apache2的乘客PHUSION部署应用程序4. 这是我的Apache的conf:正确的资产,相对URL:导轨/阿帕奇/乘客

<Location /myproject> 
      ProxyPass http://localhost:3000 
      ProxyPassReverse http://localhost:3000 
    </Location> 

然后我在myproject的独立模式下启动乘客目录:

passenger start -a 127.0.0.1 -p 3000 -d 

当我指出我的浏览器https://mydomain.com/myproject主页显示正确,但没有CSS或JS被加载,因为链接到资产,如:

<link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css"> 

指向:

https://mydomain.com/assets/application.css 

,但应该是:

https://mydomain.com/myproject/assets/application.css 

如何可以在Apache解决这个问题或滑轨的一面呢?

+0

我可以使用地图'/ myproject'在config.ru中重新映射基础网址,但这不会将网址固定到资产 – Dawid 2013-03-10 00:25:16

+0

如果我设置了config.assets.enabled = false和config.asset_path = proc {|路径| “/ myproject#{path}”} in application.rb 我将得到正确的路径到我的资产,但不会自动生成。这怎么可以避免? – Dawid 2013-03-10 00:48:45

+0

如果您使用rails 3.1或更高版本,您是否预编译了您的资产? – ctilley79 2013-03-10 02:18:52

回答

2

解决办法很简单:

config.relative_url_root = "/myproject" 
在application.rb中

资产这个固定的路径

不中止资产管道。

+0

我只是在Passenger 4,Ruby 1.9.3和Rails 4.1中测试过。 6,我还必须添加:config.action_controller.relative_url_root =“/ myproject” – 2014-09-26 22:21:13