如何通过 https 和 heroku 上的 rails 服务云端资产?
Posted
技术标签:
【中文标题】如何通过 https 和 heroku 上的 rails 服务云端资产?【英文标题】:How to serve cloudfront assets via https with rails on heroku? 【发布时间】:2019-06-07 00:58:16 【问题描述】:我正在使用 cloudfront 为我在 heroku 上的 rails 应用程序提供资产。通过 http 这工作正常。但是当我通过 https 访问我的网站时,资产不会加载,并且出现此错误:
Mixed Content: The page was loaded over HTTPS, but requested an insecure stylesheet. This request has been blocked; the content must be served over HTTPS
我尝试过的事情:
在 Rails 配置中的 URL 前面添加 https://。 仅在云端将原始协议策略设置为 https。 安装机架 Cors。【问题讨论】:
【参考方案1】:尝试设置此选项
app/config/environments/production.rb
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
config.force_ssl = true
config.action_controller.asset_host = "<YOUR DISTRIBUTION SUBDOMAIN>.cloudfront.net"
文档https://devcenter.heroku.com/articles/using-amazon-cloudfront-cdn#testing cmets 对此发出警告:
如果您想使用 SSL 提供 Cloudfront 资产,您可以简单地 在亚马逊提供给您的分发域上使用 HTTPS。笔记, 虽然您可以为此目的创建 CNAME,为 Cloudfront 提供服务 通过您的 CNAME 和 SSL 访问的资产需要额外付费。
【讨论】:
以上是关于如何通过 https 和 heroku 上的 rails 服务云端资产?的主要内容,如果未能解决你的问题,请参考以下文章
通过 Gunicorn 在 Heroku 上的 Django-twoscoops-project(骨架)。如何设置Procfile?
如何通过部署在 Heroku 上的 Nodejs/Nestjs 服务器为我的 Angular 前端提供服务?
Cloudflare 上的 Heroku 自定义域:重定向过多
如何在heroku上的两个不同应用程序之间共享worker?