从 Rails 应用程序的资产服务器启用图像、样式表和 JavaScript 服务
Enable serving of images, stylesheets, and JavaScripts from an asset server of Rails Application
我通过从 production.rb
转换此配置来启用资产服务中的图像、样式表和 JavaScript 服务
config.action_controller.asset_host = 'https://assets.example.com'
当我点击资产 link 时,所有资产都从 https://assets.example.com 开始从这个 url 开始服务,呈现 404 错误页面。我也为这个子域添加了 DNS A 记录。
我在 Mod Passenger 中使用 Apache2。
我很困惑。请建议我正确的解决方案。
我解决了。
我删除了资产子域的 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/ [L,R=301]
RewriteCond %{HTTP_HOST} ^assets\.(.*)$ [NC]
RewriteRule ^/(.*)$ https://www.example.com/ [L,R=301]
</IfModule>
它现在可以工作了。
我通过从 production.rb
转换此配置来启用资产服务中的图像、样式表和 JavaScript 服务config.action_controller.asset_host = 'https://assets.example.com'
当我点击资产 link 时,所有资产都从 https://assets.example.com 开始从这个 url 开始服务,呈现 404 错误页面。我也为这个子域添加了 DNS A 记录。
我在 Mod Passenger 中使用 Apache2。
我很困惑。请建议我正确的解决方案。
我解决了。
我删除了资产子域的 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/ [L,R=301]
RewriteCond %{HTTP_HOST} ^assets\.(.*)$ [NC]
RewriteRule ^/(.*)$ https://www.example.com/ [L,R=301]
</IfModule>
它现在可以工作了。