javascript - Heroku Ruby on Rails 应用程序不会更新 public/assets 目录中的未消化 Assets

标签 javascript ruby-on-rails ruby ruby-on-rails-3 heroku

我在heroku 上有Ruby on Rails 应用程序。

我们使用的是 ruby​​ 2.1.5

ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-linux]

和 Ruby on Rails 4.1.1

gem 文件: http://codepad.org/6YwcIHYL

链轮版本(摘自gemfile.lock):

sprockets (2.11.0)
  hike (~> 1.2)
  multi_json (~> 1.0)
  rack (~> 1.0)
  tilt (~> 1.1, != 1.3.0)
sprockets-rails (2.2.4)
  actionpack (>= 3.0)
  activesupport (>= 3.0)
  sprockets (>= 2.8, < 4.0)
<小时/>

当然我们正在使用消化 Assets

例如application-d99ed24f47c5c39b96889148558cb16c.js - 他们正在工作

除此之外,我正在为 CKEditor 使用未消化的资源,

我把它们放在RAILS_ROOT/public/assets目录下

所以/assets/ckeditor/config.js应该指向RAILS_ROOT/public/assets/ckeditor/config.js

<小时/>

问题

我无法更新 public/assets 下的 Assets

我从 CKEditor 更新了一个文件,但当我执行以下操作时它也没有显示更改:

  • 通过 CURL 获取文件
  • 在 Chrome 的隐身窗口中查看源代码(隐身 ->“避免”缓存)

我提交了更改,基于 CircleCI 通行证(持续集成服务)。自动部署更新登台服务器。

但我仍然得到旧文件。

此外,我使用 heroku run bash 查看了文件的源代码

heroku run bash
cd public/assets/ckeditor
cat config.js

它返回旧版本。通过各种技巧来改变它,例如rm cp echo NEW_CONTENT >> NEW_FILE.js 也不起作用。

Heroku 返回旧版本...

PS将 CKEditor 从 public/assets/ckeditor 移动到 app/assets/ckeditor 并没有解决问题。

<小时/>

更新

application.js内容:http://codepad.org/ZpBruQt9

但是 CKeditor config.js 文件 (public/assets/ckeditor/config.js) 未包含在 application.js 中。

这是非消化 Assets :)

最佳答案

Heroku 不允许您将文件存储在其 dyno 中,您可能编辑过的任何文件每 15 分钟就会重置一次。所以直接通过 rm、cp、echo 来改变它是不行的。该文件必须由您的 git 分支跟踪。

我可以建议使用 ckeditor gem,它可以很好地与 sprocket ( https://github.com/galetahub/ckeditor ) 配合使用,这肯定会帮助您解决问题。

关于javascript - Heroku Ruby on Rails 应用程序不会更新 public/assets 目录中的未消化 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28774341/

相关文章:

javascript - 没有元素符号的列表项显示使用文本代替?

ruby-on-rails - 如何从 Spree 的结帐流程中删除注册的第一步?

ruby-on-rails - rails 与设计 : Email Confirmation text field?

ruby-on-rails - Rails 和 Markdown 和编辑器

ruby - 遵循 Ruby 中 "Methods return other PageObjects"的测试自动化最佳实践

javascript - isElementPresent 和 elementFinders

javascript - 与 EJS 和 - 不是这样 - "local"变量的范围作斗争

javascript - 当通过直接输入或按钮更改输入值时突出显示一行

ruby-on-rails - 由于 windows 中的 openssl/ETimedout,gem install Rails 无法工作

ruby - 在 Sinatra 中,我可以在路由和 View 中使用变量吗?