我在HTTPS上有一个站点,并且正在通过相对链接链接到图像。我正在使用Rails助手生成链接
<%= image_tag url_for(screenshot.attachment) %>
哪个会产生类似
的图片标签<img src="/rails/blobs/myimage.jpg"/>
尽管该网站位于HTTPS上,并且我使用的是相对路径,但出现以下CSP错误
Refused to load the image 'http://example.com/rails/blobs/myimage.jpg?content_type=image%2Fjpeg&disposition=inline%3B+filename%3D%22screenshot.jpg%22%3B+filename%2A%3DUTF-8%27%27screenshot.jpg'
because it violates the following Content Security Policy directive: "img-src 'self' https: data:".
我不明白为什么它试图从HTTP加载图像。
答案 0 :(得分:0)
在您的nginx配置中必须执行https转发。然后这个问题会解决的。
答案 1 :(得分:0)
添加only_path并将其设置为false。
url_for(screenshot.attachment, :only_path => false)
默认情况下它为false,但是可以肯定的是,将其添加到您的帮助器中,并查看其工作原理。
如果没有帮助,则可以创建完整的网址,例如
request.host + url_for(screenshot.attachment)