2015-04-09 2 views
0

Я хочу иметь onepager с разными файлами css, javascript и изображений для использования в качестве моей целевой страницы для моего приложения.require_tree аргумент должен быть каталогом

Я переместил свой css в папку поставщика/активов под подпапкой под названием onepager. Я использовал подпапку, потому что я буду использовать эти файлы только для onepager, а не для чего-либо еще.

например.

vendor/assets/stylesheets/onepager/ 

Я создал отдельный макет, который ссылается на отдельные файлы css. > Onepager.html.erb

<%= stylesheet_link_tag 'onepager', media: 'all', 'data-turbolinks-track' => true %> 
<%= javascript_include_tag 'onepager', 'data-turbolinks-track' => true % 

в файлах onepager.js и onepager.css.scss Я хочу, чтобы ссылаться на файлы в поставщика/активов/ххх/onepager/папки. Я добавил следующий код, но получаю сообщение об ошибке.

onepager.css.scss

/* 
* This is a manifest file that'll be compiled into application.css, which will include all the files 
* listed below. 
* 
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, 
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. 
* 
* You're free to add application-wide styles to this file and they'll appear at the bottom of the 
* compiled file so the styles you add here take precedence over styles defined in any styles 
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new 
* file per style scope. 
* 
*= require_tree ./onepager/ 
*/ 

onepager.js

/* 
* This is a manifest file that'll be compiled into application.css, which will include all the files 
* listed below. 
* 
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, 
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. 
* 
* You're free to add application-wide styles to this file and they'll appear at the bottom of the 
* compiled file so the styles you add here take precedence over styles defined in any styles 
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new 
* file per style scope. 
* 
*= require_tree ./onepager/ 
*/ 

Я получаю ошибку, что требуется дерево не является каталогом? Это странно, потому что это каталог, и я полагаю, что файлы в активах поставщика загружаются автоматически?

Как это исправить?

require_tree аргумент должен быть каталогом (в /home/ubuntu/workspace/app/assets/stylesheets/onepager.css.scss:13)

+1

Вы помечено это с 'рубин-на-rails',' рубин-на-рельсы-3' и 'рубин-на-рельсы-4'. Какую версию вы используете. Исправьте свои теги. –

ответ

3

нашел ответ сам.

Я должен добавить:

//= require_tree ../../../vendor/assets/javascripts/onepager 

и то же самое для CSS-файлов. После этого страница с ошибкой уведомляет меня об обновлении файла config/initializers/assets.rb с кодом, который он предоставляет.

Я сейчас работаю.

Источник: https://github.com/rails/rails/issues/1223

+0

Рад, что вы нашли решение! После повторного просмотра вашего кода кажется ясным. Не делал достаточно исследований, удаляя мой вопрос. Кстати, не хотите ли вы использовать код для одногопакера в каталоге активов, так как его * ваш * код? –

+0

AFAICS, документация Rails, а также resource_path, предполагают, что должно быть возможно получить доступ к вещам в 'vendor/assets', как если бы они находились в' app/assets'. Но мне также нужен этот относительный путь. Кто-нибудь знает, неверна ли документация или может быть неправильная конфигурация или ... (Rails 5.0.1). – Confusion