问题标签 [turbolinks-5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
252 浏览

javascript - 谷歌分析在rails中嵌入了带有turbolinks的api

我正在尝试使用 google 为我的 rails 应用程序提供的 javascript 代码实现 google analytics embed api,并从此链接获取帮助 -> https://ga-dev-tools.appspot.com/embed-api/。现在我不知道如何在每次页面更改时运行这些脚本,因为这些 javascripts 侦听页面加载事件,并且 rails 使用实际上不加载页面的 turbolinks 它只交换正文和标题。现在的问题是 javascript 没有响应,因为它不知道该页面已被更改。请帮帮我。

我的代码第一次正常运行,但是如果我切换到另一个链接或在通过 turbolinks 访问另一个页面后返回同一页面,则 javascript 不会运行。

请帮忙。谢谢

0 投票
1 回答
934 浏览

ruby-on-rails - Turbolinks 5 使用 capybara 进行功能测试

如何配置 capybara 以使用 Turbolinks 5?我已经配置了 poltergeist,并且js: true在我的测试中

我能够使它工作的唯一原因是使用sleep 1

0 投票
2 回答
922 浏览

jquery - 使用 turbolinks 时如何清除窗口变量

在 Rails 上使用 ruby​​,我的代码由以下咖啡脚本触发;

在代码要触发的页面上,我有一个 divtarget和一个加载progress参数的脚本标签,例如

如果没有 turbolinks,那么这可以正常工作,代码在它打算的页面上触发并且不会在其他页面上触发。但是,如果我启用 turbolinks 5.0.1 并访问代码不触发的页面,然后访问代码触发的页面,然后返回代码不触发的页面,代码触发在最后一页有一个例外。似乎 turbolinks 没有在页面加载之间清除 window.progress 变量。

如何确保通过脚本加载的窗口变量在页面之间被清除?

0 投票
2 回答
130 浏览

heroku - Heroku 上的 Rails 5 忘记了用回形针和 turbolinks 存储的文件:没有路线匹配

我有一个通过回形针 5.1.0 和 turbolinks 5.0.1 上传/下载文件的博客。未经验证的上传现在可以正常工作,但下载仅在上传后的短时间内工作。之后显示错误(404):

这没有帮助:

我正在使用 Heroku 上的 mysql DB 进行生产。当我不通过 h​​eroku 进行部署时:那么本地副本与 ruby​​ 版本 2.2.4 一起工作得很好!

heroku 上的新部署git push heroku master不修复附件链接。

只有手动删除数据库文件和新上传才能使附件链接在短时间内再次起作用。

PS 当测功机重新启动时,例如使用heroku restart,则文件系统是新的并被删除。但我不知道,如何使用 redis 或 amazon aws s3 使文件系统持久化!

日志说:

2017-01-31T12:21:03.027810+00:00 heroku[路由器]: at=info method=GET path="/system/articles/attachments/000/000/015/original/gmr-1.8.3.jar" host=infinite-taiga-25466.herokuapp.com request_id=fb775bcc-64f4-4d6b-89c0-70991af31e2f fwd="178.15.12.47" dyno=web.1 connect=0ms service=2ms status=404 bytes=1744 2017-01- 31T12:21:03.026812+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] 开始 GET "/system/articles/attachments/000/000/015/original/gmr-1.8.3 .jar”为 178.15.12.47 在 2017-01-31 12:21:03 +0000 2017-01-31T12:21:03.027262+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f ] 2017-01-31T12:21:03.027284+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] ActionController::RoutingError (没有路由匹配 [GET] "/system/articles/attachments /000/000/015/original/gmr-1.8.3.jar"): 2017-01-31T12:21:03.027302+00:00 应用 [web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] 2017-01-31T12:21:03.027334+00:00 应用 [web.1]: [fb775bcc-64f4-4d6b- 89c0-70991af31e2f] 供应商/bundle/ruby/2.2.0/gems/actionpack-5.0.1/lib/action_dispatch/middleware/debug_exceptions.rb:53:incall' 2017-01-31T12:21:03.027336+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby/2.2.0/gems/actionpack-5.0.1/lib/action_dispatch/middleware/show_exceptions.rb:31:in呼叫' 2017-01-31T12:21:03.027337+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby/2.2.0/gems/railties-5.0.1 /lib/rails/rack/logger.rb:36:in call_app' 2017-01-31T12:21:03.027338+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby/2.2.0/gems/railties-5.0.1/lib/rails/rack/logger.rb:24:inblock in call' 2017-01-31T12:21:03.027339+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] 供应商/bundle/ruby/2.2.0/gems/activesupport-5.0.1/lib/active_support/tagged_logging.rb:26:in tagged' 2017-01-31T12:21:03.027338+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.1/lib/active_support/tagged_logging.rb:69:inblock in tagged' 2017-01-31T12:21:03.027340+00:00 app[web.1 ]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] 供应商/bundle/ruby/2.2.0/gems/activesupport-5.0.1/lib/active_support/tagged_logging.rb:69:in call' 2017-01-31T12: 21:03.027343+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] 供应商/bundle/ruby/2.2.0/gems/rack-2.0.1/lib/rack/runtime.rb :22:在tagged' 2017-01-31T12:21:03.027341+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby/2.2.0/gems/railties-5.0.1/lib/rails/rack/logger.rb:24:in call' 2017-01-31T12: 21:03.027341+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] 供应商/bundle/ruby/2.2.0/gems/actionpack-5.0.1/lib/action_dispatch/middleware/request_id .rb:24:incall' 2017-01-31T12:21:03.027342+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby/2.2.0/gems/rack-2.0.1/lib/rack/method_override.rb:22:incall' 2017-01-31T12:21:03.027344+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.1/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in call' 2017-01-31T12:21:03.027345+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby /2.2.0/gems/actionpack-5.0.1/lib/action_dispatch/middleware/executor.rb:12:in call' 2017-01-31T12:21:03.027346+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby/2.2.0/gems/actionpack-5.0.1/lib/action_dispatch/middleware/static.rb:136:incall' 2017-01-31T12:21:03.027346+00:00 app[web.1]:[fb775bcc -64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby/2.2.0/gems/rack-2.0.1/lib/rack/sendfile.rb:111:in call' 2017-01-31T12:21:03.027347+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby/2.2.0/gems/railties-5.0.1/lib/rails/engine.rb:522:incall' 2017-01-31T12:21:03.027349+ 00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] 供应商/bundle/ruby/2.2.0/gems/puma-3.7.0/lib/puma/server.rb:578:inhandle_request' 2017-01-31T12:21:03.027349+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby/2.2.0/gems/puma-3.7.0/lib/puma/server.rb:415:inprocess_client' 2017-01-31T12:21:03.027350+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby/2.2.0/gems/puma-3.7.0 /lib/puma/server.rb:275:in block in run' 2017-01-31T12:21:03.027351+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby/2.2.0/gems/puma-3.7.0/lib/puma/thread_pool.rb:120:incall' 2017-01-31T12:21:03.027352+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby /2.2.0/gems/puma-3.7.0/lib/puma/thread_pool.rb:120:in block in spawn_thread' 2017-01-31T12:21:03.027348+00:00 app[web.1]: [fb775bcc-64f4-4d6b-89c0-70991af31e2f] vendor/bundle/ruby/2.2.0/gems/puma-3.7.0/lib/puma/configuration.rb:226:incall'

C:\站点\blog_production_heroku>

0 投票
2 回答
2623 浏览

jquery - Turbolinks 5 ajax POST

在我的 Rails 5 / Turbolinks 5 应用程序中,我想将表单提交产生的​​ html 放入 div 中。

表格是一个

标准导轨形式。

成功提交后,将重定向发送到浏览器

当我通过 ajax 提交表单时:

from 被提交,服务器的 redirect_to 语句将浏览器重定向到新用户的页面。

重定向会导致 turbolinks 将正文替换为浏览器重定向到的页面内容。相反,我想替换特定的 div $(".dialog .canvas").html(data)。我怎样才能防止 turbolinks 的这种行为。

0 投票
1 回答
1029 浏览

ruby-on-rails - 如何跟踪 rails 5 remote link_to 以显示微调器(我正在使用 turbolinks 5)

我知道有很多关于它的问题,但没有任何东西表明我想要什么。我想显示一个微调器,自定义微调器,与 turbolinks 默认进度条不同,我想在单击带有 remote:true 的 link_to 时显示微调器,此单击将用新的部分替换页面的一部分,我想显示处理请求时的微调器。在我的 custom.coffe 中,我有:

这适用于没有 remote:true 链接的 turbolink,但是当我单击带有 remote:true 的 link_to 时没有任何反应,我什至在控制器操作中设置了 sleep(5) 以查看是否显示,该操作以 format.js 响应。

我想要 ajax:start 和 ajax:success 之类的东西放入我的咖啡文件或任何其他解决方案。提前致谢。

0 投票
1 回答
1665 浏览

ruby-on-rails - Rails turbolinks 5 闪现消息

我正在尝试找到一种在使用 turbolinks 5 时处理 rails (v4.1) flash 消息的方法。

我尝试添加data-temporary="true"到每个 Flash 消息 div,然后是:

所以旧的闪存消息不会被缓存,并且不会在用户下次访问同一页面时显示。

但是,这让我在我正在使用的页面上遇到了问题,flash.now因为在这些页面上,闪存已从缓存版本中删除,但随后 turbolinks 会刷新服务器中的内容,flash.now然后出现消息,这有点令人不快用户角度。

我环顾四周,找不到任何闪光来指示它们是否.now存在,因此data-temporary只能应用于临时闪光。

我正在尝试使用 turbolinks 而不是禁用它的功能。

我正在尝试找到一种方法来删除闪光灯before-cache,但如果它们是flash.now类型的话。

有什么建议么?

0 投票
3 回答
2371 浏览

jquery - Magnific Popup: application-3f3c3e8….js:15011Uncaught TypeError: Cannot read property 'open' of undefined

我将此示例用于画廊:https ://codepen.io/dimsemenov/pen/zvLny

我的应用程序是 Rails 5 和 Turbolinks 5。我只在生产中遇到此错误,而不是在开发中。

当我单击打开图库时,出现错误:

Uncaught TypeError: Cannot read property 'open' of undefined

这是我的js:

还有我的html:

我尝试将我的 JS 包装进去,$( document ).on('turbolinks:load', function() { } 但得到了同样的错误。任何帮助表示赞赏

0 投票
2 回答
237 浏览

ruby-on-rails - 使 offline.js 与 turbolinks 一起工作

我在初始页面加载时使用了offline.js,它工作正常。turbolinks但是,如果我单击另一个链接,那么在我刷新页面之前这将不起作用。我可以看到Offline.state下降了,但仍然没有显示视图。有什么方法可以manually触发popup窗口吗?

更新

除了offline.js文件,我唯一的 js 就是这个

0 投票
0 回答
52 浏览

jquery - 如何在 Turbolinks 5 中使用 Jquery ajaxSetup

我在使用 Turbolinks 5 实现 Jquery ajaxSetup 时遇到问题

原来的

试过了,但 X-CSRF-TOKEN 不在标头中,