#ruby-on-rails #ruby-on-rails-3
#ruby-on-rails #ruby-on-rails-3
Вопрос:
Когда пользователь загружает файлы. В Rails 3.0 они будут доступны для публикации / загрузки. В 3.1 должны ли загруженные файлы переходить в app / assets / uploads? Или все еще общедоступны / загружаются?
На самом деле это не проблема в нашей среде, поскольку мы используем S3. Просто пытаюсь понять новую структуру каталогов Rails 3.1.
Что вы думаете?
Ответ №1:
общедоступный каталог, capistrano рекомендует public/ system/
пусть вас не смущает каталог app / assets, обычно он предназначен для файлов css / js / coffeescript, думаю, это самое большое изменение с 3.0 на 3.1
Ответ №2:
Что ж, ответ прост: у ваших пользователей будет доступ только к вашему /public
каталогу.
Есть всего лишь несколько приемов для получения css
и js
, но вам придется придерживаться /public
других вещей.
Как правило, я помещаю все материалы в /public/assets
Ответ №3:
добавление к ответу apneadiving:
если вы используете Carrierwave , временные файлы находятся в каталоге / tmp вашей системы, а загруженные файлы — в подкаталоге под $RAILS_ROOT/public , например $ RAILS_ROOT/public/uploads/YOUR-MODEL/…
В Rails 3.1 каталог ‘assets’ предназначен для файлов JavaScript и CSS, чтобы sprockets мог их там найти и чтобы они были недоступны напрямую через «общедоступный» каталог…
see: assets/javascripts/application.js and assets/stylesheets/application.css files
see: http://railscasts.com/episodes/265-rails-3-1-overview
Каталог app / assets предназначен для файлов CoffeeScript (также не является общедоступным, поэтому не подходит для размещения загрузок)
Ответ №4:
Размещение загруженных файлов в файловой системе работает, только если у вас есть один файловый сервер или подключенное к сети хранилище… Обычно я просто помещаю файлы в саму базу данных.
Но, как сказал vrsmn, не используйте ресурсы для этого, конвейер ресурсов предназначен для оптимизации изображений css / js / приложений.