как предотвратить кеширование звездочек .erb файла? - PullRequest
3 голосов
/ 30 сентября 2011

Sprockets gem кэширует файлы .erb, хотя код рубина в них может оцениваться по-разному при каждой компиляции

Например: foo.js.erb

var foo = <%= Kernel.rand %>;

оценивает его один раз и кэшируетнавсегда.Как вы предотвращаете кэширование некоторых таких файлов звездочками?

1 Ответ

2 голосов
/ 30 сентября 2011

Вы можете разделить свой JavaScript на библиотеки (.js.erb или просто .js) и данные конфигурации (например, var foo). Затем оставьте весь библиотечный код в руках Sprocket и поместите свою конфигурацию в ваши обычные представления ERB (возможно, встроенные в ваши макеты).

Вы также можете передавать данные конфигурации через отдельный контроллер (возможно, /config.js), если это лучше соответствует вашей архитектуре.

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

...