Почему кеш ресурсов Rails не работает для JS в промежуточной среде? - PullRequest
3 голосов
/ 21 сентября 2009

У меня установлены CSS и JS для кэширования в RAILS_ROOT/app/views/layouts/application.html.erb:

<%= stylesheet_link_tag 'reset', ...
                        'layout', 'colors', :cache => 'cache/all' %>
<%= javascript_include_tag 'jquery-1.3.2.min', ...
                           'application', :cache => 'cache/all' %>

Если я включаю кэширование в моей среде разработки, все будет работать как запланировано:

# in RAILS_ROOT/config/environments/development.rb:
config.action_controller.perform_caching = true

Когда я ставлю ту же строку в стадии подготовки, /stylesheets/cache/all.css генерируется правильно, а /javascripts/cache/all.css - нет. Строка генерируется в HTML, как если бы это было так:

<script src="/javascripts/cache/all.js?1253556008" type="text/javascript"></script>

Переход по этому URL приводит к пустому файлу JS (хотя, как ни странно, не к 404). В файловой системе нет файлов (под RAILS_ROOT/public/javascripts/cache/all.js).

Есть мысли?

1 Ответ

3 голосов
/ 24 ноября 2010

Это длинный путь, но попробуйте удалить файл all.js и посмотреть, правильно ли приложение перестраивает его. Как только файл на месте, Rails, кажется, никогда не пытается восстановить его, поэтому, если он был плохо сформирован из-за какой-то ошибки или чего-то еще, он мог остаться там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...