从Rails应用程序的资产服务器启用图像,样式表和JavaScripts的服务

时间:2018-05-06 11:30:38

标签: ruby-on-rails ruby apache2

我通过从production.rb转换此配置,从资产服务中启用图像,样式表和JavaScripts服务

config.action_controller.asset_host = 'https://assets.example.com'

当我点击资源链接时,所有资产都从此网址的https://assets.example.com开始投放,呈现404错误页面。我也为此子域添加了DNS A记录。

我正在使用带有Mod Passenger的Apache2。

我很困惑。请建议我正确的解决方案。

1 个答案:

答案 0 :(得分:0)

我解决了。

我删除了资产子域的A记录,并创建了一个指向根域的资产的cname记录。

CNAME assets is an alias of www.example.com 

然后我将assets.example.com添加到example.com.conf文件中作为ServerAlias

ServerAlias assets.example.com

为了防止assets.example.com浏览自身,我添加了一个mod重写规则,将assets.example.com重定向到www.example.com。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule ^/(.*)$ https://www.example.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^assets\.(.*)$ [NC]
RewriteRule ^/(.*)$ https://www.example.com/$1 [L,R=301]
</IfModule>

现在正在工作。