我想做什么
只需学习Rails,就可以为默认的rails new appname
项目添加一些有趣的样式和脚本。紧跟MDB implementation guide here之后,表示在vendor/assets/(stylesheets or javascripts)
下添加样式和脚本,并将文件包括在资产管道中。
问题是
例如, Bootstrap被包含在标记中并带有自己的小<link>
标签,但被CSP阻止,该标签说:
Refused to load the stylesheet 'http://0.0.0.0:3000/assets/bootstrap.self-084....css?body=1'
because it violates the following Content Security Policy directive: "style-src 'unsafe-inline'".
没有帮助的
我试图找到CSP的确切定义位置,但是像我这样的棕色鼻子在如此密集的支架中导航并非易事。
尝试摆弄
/vendor/bundle/ruby/2.3.0/gems/actionpack-5.2.1.1/lib/action_dispatch/http/content_security_policy.rb
和
'vendor/bundle/ruby/2.3.0/gems/railties-5.2.1.1/lib/rails/application_controller.rb'
->但没有成功。
试图覆盖我的app/asstes/controllers/application_controller.rb
类ApplicationController 中的content_security_policy,如下所示:
content_security_policy do |p|
p.style_src "self"
p.script_src "self"
end
但控制台中的错误消息保持不变。
我了解可用于禁用和测试CSP的chrome插件,但感觉像是在作弊。
问题
我如何调整CSP标头选项,以便Rails应用程序允许使用资产管道资产?
预先感谢