Где должны храниться флеш файлы в 3.1? - PullRequest
11 голосов
/ 25 мая 2011

В Rails 3.0.X я бы сохранял свои flash-файлы в public / flash.Flash-файлы, такие как: jwplayer, uploadify и т.д.новый каталог с именем 'flash' в app / assets /?

Ответы [ 3 ]

12 голосов
/ 28 июля 2011

Вы можете использовать директиву Звездочки provide .

Например, вот как я использую Plupload:

# app/assets/javascripts/plupload.js
//= require plupload/plupload
//= require plupload/plupload.flash
//= require plupload/plupload.silverlight
//= provide plupload/dependencies

Соответствующий каталог поставщика:организован так:

vendor
├── assets
│   ├── javascripts
│   │   └── plupload
│   │       ├── dependencies
│   │       │   ├── plupload.flash.swf
│   │       │   └── plupload.silverlight.xap
│   │       ├── plupload.flash.js
│   │       ├── plupload.js
│   │       └── plupload.silverlight.js
│   └── stylesheets
└── plugins

Затем я использую <%= javascript_include_tag 'plupload' %>, когда хочу использовать Plupload, и помощник asset_path для заполнения конфигурации Plupload:

<%= javascript_include_tag 'plupload' %>

<script type="text/javascript">
$(function() {
    var uploader = new plupload.Uploader({
        runtimes : 'flash,silverlight',
        multipart : true,
        multipart_params : {
            'authenticity_token' : '<%= form_authenticity_token %>'
        },
        flash_swf_url : 
            '<%= asset_path "plupload/dependencies/plupload.flash.swf" %>',
        silverlight_xap_url :
            '<%= asset_path "plupload/dependencies/plupload.silverlight.xap" %>',
        url : '<%= url_for [@item, :photos] %>',
        // ...
    });

Надеюсь, чтопомогает.

2 голосов
/ 25 мая 2011

если это .swf файлы, я не думаю, что они принадлежат app/assets.Папка ресурсов позволяет предварительно «скомпилировать» файлы ресурсов приложения для CoffeeScript и SCSS (или аналогичных js и css «компиляторов»).Если вы компилируете .as файлы в .swf файлы как часть процесса развертывания или запуска, я думаю, что имеет смысл поместить их в папку ресурсов.Однако это кажется ужасной идеей.

================= ОБНОВЛЕНИЕ =====================

Я был не прав.Папка ресурсов предназначена для обслуживания активов Sprockets.Пока вы можете обрабатывать пути переваренных активов, вы должны использовать Sprockets.

1 голос
/ 27 октября 2011

Я думаю, есть хорошие аргументы для обоих мест. Использование конвейера ресурсов (храните их в / app / assets) имеет недостаток, заключающийся в том, что невозможно жестко связать статические файлы из флэш-памяти, поскольку вы не можете указать имя файла в рабочей среде (Rails добавит хэш-сумму содержимого к имени файла ). Вам нужно будет генерировать flashvars или xml-файлы с помощью Rails, содержащие имена файлов ресурсов.

Однако, если вы используете конвейер ресурсов, каждый файл получит новую хэш-сумму в имени файла, если файл изменится. Вы можете указать браузеру кэшировать файлы навсегда, поскольку после ссылки на измененный файл он будет новым для браузера (<- имя файла) и загрузит измененный файл с сервера. Кэширование сделает ваш сайт быстрее для постоянных посетителей. </p>

...