【发布时间】:2020-10-28 13:37:20
【问题描述】:
我正在尝试将这个:https://github.com/Alex-D/Cookies-EU-banner 添加到我的 rails 6 站点。这应该很容易,但是我错过了一些东西,我不知道它是什么。
这就是我所做的:
- yarn add cookies-eu-banner(没问题)。
- 在正文部分的开头插入此 div(没问题 - 使用部分完成)。
<div id="cookies-eu-banner" style="display: none;">
By continuing to visit this site, you accept the use of cookies by Google Analytics for statistical purposes.
<a href="./read-more.html" id="cookies-eu-more">Read more</a>
<button id="cookies-eu-reject">Reject</button>
<button id="cookies-eu-accept">Accept</button>
</div>
- 将这个 div 插入到正文部分的末尾(也可以通过部分完成)。
<%= javascript_pack_tag '../src/cookies-eu-banner' %>
<script>
new CookiesEuBanner(function () {
// Your code to launch when user accept cookies
});
</script>
-
在 application.js 我添加了这一行: 导入('src/index')
-
在 app/javascript/src/index.js 我添加了这一行: 导入'cookies-eu-banner'
-
我已将 cookies-eu-banner.js 脚本复制到 app/javascript/src 文件夹中。
-
然后预编译资产,完成 bin/webpack 并重新启动服务器。
但是在刷新页面时,我仍然收到一条错误消息:“CookiesEuBanner 不是函数”,或者:“未捕获的 ReferenceError:cookiesEuBanner 未定义”
欢迎对我错过的内容提出任何建议。
提前致谢
【问题讨论】:
-
我的猜测是
javascript_pack_tag不能采用相对路径,或者路径错误 -
我也尝试过将脚本直接放在 app/javascript 文件夹中,并在 application.js 中有这一行: import './cookies-eu-banner'; - 然后在 application.html.erb 中:。 - 结果相同。
-
也许你应该这样做: 每个 javascript 文件都有一个单独的标签。
-
cookies-eu-banner 直接在 packs 文件夹中,我在源代码 (html) 中得到了这个: 所以这个js文件被webpacker找到了。
-
我需要从原始 js 脚本中导出 CookiesEuBanner,还是需要从 cookies-eu-banner 导入 CookiesEuBanner 之类的操作才能访问该功能?
标签: javascript ruby-on-rails webpacker