Heroku Ruby on Rails应用程序don't更新公共/资产目录中的未消化资产

Heroku Ruby on Rails app don't updates non-digested assets in public/assets dir

本文关键字:未消化 更新 应用程序 Rails on Ruby don Heroku      更新时间:2023-09-26

我在heroku上有RubyonRails应用程序。

我们正在使用ruby 2.1.5

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

和Ruby on Rails 4.1.1

Gemfile: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)

当然,我们正在使用消化资产

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

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

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

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


问题

我无法更新public/assets 下的资产

我从CKEditor更新了一个文件,但当我:时,它也没有显示更改

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

我提交了更改,建立在CircleCI通行证(持续集成服务)之上。自动部署会更新临时服务器。

但我还是拿到了旧文件。

早上,我使用heroku run bash 查看了文件的来源

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

并返回旧版本。通过各种tricks(例如rmcpecho 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中。

它是非摘要资产:)

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

我可以建议使用ckeditor宝石吗,它可以很好地配合链轮(https://github.com/galetahub/ckeditor),这肯定会帮助你解决问题。