CSP: относительный img src на сайте https пытается установить ссылку на изображение http - PullRequest
0 голосов
/ 29 июня 2018

У меня есть сайт по HTTPS, и я делаю ссылки на изображения с относительными ссылками. Я создаю ссылку с помощником рельсов

 <%= 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.

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

Добавьте only_path и установите для него значение false.

url_for(screenshot.attachment, :only_path => false)

По умолчанию он имеет значение false, но для уверенности добавьте его в свой помощник и посмотрите, как он работает.

Если это не поможет, вы можете создать полный URL-адрес, например

request.host + url_for(screenshot.attachment)
0 голосов
/ 29 июня 2018

Из вашего конфига nginx нужно сделать пересылку https. Тогда эта проблема будет решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...