Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何添加:";“欧盟旗帜”;至Rails 6站点_Javascript_Ruby On Rails_Webpacker - Fatal编程技术网

Javascript 如何添加:";“欧盟旗帜”;至Rails 6站点

Javascript 如何添加:";“欧盟旗帜”;至Rails 6站点,javascript,ruby-on-rails,webpacker,Javascript,Ruby On Rails,Webpacker,我正在尝试将这个添加到我的rails 6站点。这应该很容易,但我错过了一些东西,我不知道是什么 这就是我所做的: 纱线添加饼干欧盟横幅(没有问题) 在主体部分的开头插入此div(没问题-使用局部填充完成) 通过继续访问此网站,您接受Google Analytics出于统计目的使用cookies。 拒绝 接受 要使用webpack/webpack实现此功能,使用方法将与cookies eu banner自述中当前描述的不同。您的JavaScript代码必须导入到webpack依赖关系图中,而不

我正在尝试将这个添加到我的rails 6站点。这应该很容易,但我错过了一些东西,我不知道是什么

这就是我所做的:

  • 纱线添加饼干欧盟横幅(没有问题)
  • 在主体部分的开头插入此div(没问题-使用局部填充完成)
  • 
    通过继续访问此网站,您接受Google Analytics出于统计目的使用cookies。
    拒绝
    接受
    
    要使用webpack/webpack实现此功能,使用方法将与cookies eu banner自述中当前描述的不同。您的JavaScript代码必须导入到webpack依赖关系图中,而不是在视图的
    标记中嵌入JS

    首先,确保布局中有以下标记,以便导入Webpacker捆绑的JavaScript和CSS:

    <%= stylesheet_pack_tag 'application' %>
    <%= javascript_pack_tag 'application' %>
    
    现在,通过在“application.js”包文件中添加导入语句,将该文件添加到webpack依赖关系图中:

    //app/javascript/packs/application.js
    导入“../src/add eu banner”
    
    那应该会显示横幅。您可能需要刷新页面或重新启动webpack dev服务器,具体取决于您在本地的开发方式


    我也在Rails 6 Webpacker demo repo中的一个分支中创建了这个示例:

    ,因为我的声誉,我现在还不能发表评论:

    奥巴马的答案是正确的。要回答关于如何添加Google Analytics的后续问题:只需调整CookiesEuBanner init中的代码,如下所示:

    document.addEventListener('DOMContentLoaded', () => {
        new CookiesEuBanner(function () {
            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
    
            // Don't forget to put your own UA-XXXXXXXX-X code
            ga('create', 'UA-XXXXXXXX-X', 'auto');
            ga('send', 'pageview');
        }), true; 
    })
    
    我的旗帜也没有显示出来。确保您没有cookie“hasaconsence=true”和/或检查浏览器安全设置。
    i、 e.Firefox:

    我猜
    javascript_pack_tag
    不能采用相对路径,或者路径错误。我也尝试过将脚本直接放在app/javascript文件夹中,并将这一行放在application.js:import./cookies eu banner';-然后在application.html.erb中显示:同样的结果。也许你应该这样做:对于每个javascript文件,都有一个单独的标记。cookies eu横幅直接位于packs文件夹中,我在源代码(html)中得到它:new cookies EUBanner(function(){});因此,webpacker找到了js文件。我需要从原始js脚本中导出CookiesEuBanner,还是需要从cookies eu banner中导入CookiesEuBanner之类的操作才能访问该功能?我按照您的说明进行了操作,并且在控制台日志中获得了“cookies eu banner accepted”(cookies eu banner accepted),因此我确信,您的答案是正确的。然而,当我尝试添加示例中的谷歌分析时,我仍然没有看到横幅:我按照您的说明进行了操作,并且在控制台日志中看到了“Cookies EU banner accepted”,因此我确信您的答案是正确的。然而,在刷新页面时,我仍然看不到实际的横幅。如果我想使用google analytics示例,我应该使用jquery将整个代码添加到a中,还是将console.log(“Cookies EU Banner accepted”)替换为“real code”?这听起来像是一个单独的问题,谢谢-我已经将Rossta的答案标记为已接受。它花了很多时间重新启动、清除cookies等,但我现在已经让它工作了,Rossta answer让我走上了正确的轨道。