我通过从production.rb转换此配置,从资产服务中启用图像,样式表和JavaScripts服务
config.action_controller.asset_host = 'https://assets.example.com'
当我点击资源链接时,所有资产都从此网址的https://assets.example.com开始投放,呈现404错误页面。我也为此子域添加了DNS A记录。
我正在使用带有Mod Passenger的Apache2。
我很困惑。请建议我正确的解决方案。
答案 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>
现在正在工作。