我在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/