Вопрос заказа актива-конвейера - PullRequest
0 голосов
/ 23 февраля 2012

Я использую Rails 3.1 с конвейером ресурсов. Однако у меня очень странная проблема.

Мое application.html.haml:

!!! 5
%html{:xmlns => 'http://www.w3.org/1999/xhtml'}
    %head
        = stylesheet_link_tag 'bootstrap', 'application'
        = yield :css
        %title BizPlug
        %meta{:content => 'text/html; charset=utf-8', 'http-equiv' => 'Content-Type'}
        = csrf_meta_tags
        = javascript_include_tag 'application'
        = yield :js 

На мой взгляд, я пытаюсь использовать content_for для динамической загрузки js-файла, который выглядит следующим образом:

- content_for :css do
    = javascript_include_tag 'jquery.fancybox'
- content_for :js do
    = javascript_include_tag 'jquery.fancybox'  

.edit-panel
    %p.text_actions
        = link_to "Publish", publish_policy_draft_path(@policy_draft), :disable_with => 'Processing...', :method => 'PUT', :class => "primary btn"
        = link_to "Delete", policy_draft_path, :method => 'Delete', :confirm => 'Are you sure', :class => 'btn danger'
        = link_to "Close", policy_drafts_path, :class => 'btn'

Однако, когда я проверяю исходный код из браузера, он дает мне

<link href="/assets/bootstrap.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/compositions.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/base.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/simple.css?body=1" media="screen" rel="stylesheet" type="text/css" />   
<script src="/assets/jquery.fancybox?body=1" type="text/javascript"></script>

    <title>BizPlug</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
    <script src="/assets/jquery.min.js?body=1" type="text/javascript"></script>

Мне интересно, почему jquery.fancybox.js будет выше application.js?

1 Ответ

1 голос
/ 23 февраля 2012

Что ж, если то, что вы скопировали и вставили, правильно, то у вас есть включаемый тег JavaScript в вашем блоке content_for: css Вот почему материал fancybox требуется перед application.js.

...