因此,我已将CookiesEu gem添加到我的应用程序中以添加Cookie同意。但是问题是文本:Cookies help us deliver our services. By using our services, you agree to our use of cookies. OK Learn more
在按下OK
按钮后仍然在视线范围内。而我希望它在按OK
后消失。
在文档中说:This gem uses a cookie called cookie_eu_consented to track whether a user has accepted the cookie notice and whether it needs to be shown again or not.
但是,即使接受了cookie,也会显示cookie通知。
p.s。我将= render 'cookies_eu/consent_banner', link: '/cookies'
放在页脚
答案 0 :(得分:1)
请确保
//= require cookies_eu
在您运行后,已添加到您的application.js
bundle exec rails g cookies_eu:install
答案 1 :(得分:1)
如果您使用的是Rails 6或更高版本,现在可以使用webpacker交付JavaScript。这会破坏当前的文件结构,并导致通常会处理“确定”按钮的JavaScript失败。
您可以在下面找到解决方案:
要使其与Webpacker一起使用。您必须将JavaScript代码作为Webpack依赖项导入,而不是在视图的标签中嵌入JS。
第一步:
确保以下标记在您的布局中:
<%= stylesheet_pack_tag 'application' %>
<%= javascript_pack_tag 'application' %>
第二:
就像自述文件中一样横幅HTML应该在您的布局/视图中,即<div id="cookies-eu-banner" style="display: none;">...</div>
第三:
添加一个JS文件,用于在app / javascript /(但不是app / javascript / packs)中的某处初始化横幅,例如app / javascript / src / add-banner.js。在这里,您将导入库(如果需要,还可以导入CSS)并在DOM内容加载后对其进行初始化:
// app/javascript/src/add-eu-banner.js
import CookiesEuBanner from 'cookies-eu-banner'
import 'cookies-eu-banner/css/cookies-eu-banner.default.css'
document.addEventListener('DOMContentLoaded', () => {
new CookiesEuBanner(() => {
console.log('Cookies EU Banner accepted');
})
})
最后:
通过在“ application.js”打包文件中添加导入语句,将该文件添加为webpack依赖项:
// app/javascript/packs/application.js
import '../src/add-eu-banner'
如果您使用的Rails版本低于6,建议您发布代码,以便人们可以更深入地研究您的问题。