【问题标题】:None of js files gets loaded when a page is loaded for the first time第一次加载页面时没有加载任何js文件
【发布时间】:2014-06-27 11:43:15
【问题描述】:

页面上有一个链接。当我点击它时,我确实会被重定向到另一个页面。但是第一次(当在另一个带有链接的页面中引用时)没有加载任何 js 文件。一个都没有。只有当我手动重新加载它或在地址栏中输入链接时,所有的js文件才能正常加载。但第一次 - 不是。

它发生在开发和生产环境中。我怀疑缓存可能是一个原因,但即使在重新加载后,一些 js 文件仍然保持“304 未修改”(但有些没有)。

如果这很重要,我会使用 turbolinks。

怎么了?

【问题讨论】:

  • 如果您手动包含 js 文件并同时使用 turbo_links,则可以附加。您应该发布您的 js 清单文件、布局文件和出现此错误的视图之一

标签: javascript jquery ruby-on-rails ruby


【解决方案1】:

假设您正在使用资产管道,您可以尝试通过将 config.assets.version 设置为新的值(在 config/application.rb 中)来增加资产的版本。这应该会使您现有的所有资产过期,并强制您的浏览器(以及您所有用户的浏览器!)下载新资产。

【讨论】:

  • 你的意思是,我可以增加一次然后运行服务器,它总是会加载 js?我的应用程序中什至没有这个密钥。rb
  • 我不保证在这里总是加载 JS 资产,只是它会强制资产过期。这背后的机制是嵌入在资产名称中的 md5 指纹将被重新散列,因此在浏览器中看起来像是新资产。如果还有其他事情发生(即,如果这不是真正的缓存资产问题),那么这不会解决问题,我猜。你运行的是什么版本的rails?在 4.1 中,config.assets.version 被移动到初始化文件 (config/initiailzers/assets.rb) 并定义为例如Rails.application.config.assets.version = '1.0'.
  • 啊,好的。缓存的东西把我扔了。只是你还不了解 turbolinks 的工作方式,然后呢?希望你现在明白了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-30
  • 1970-01-01
相关资源
最近更新 更多