2016-08-03 4 views
0

Я не могу получить проект рельсов, чтобы увидеть мой стиль style.css или style-responsive.css.Не удается загрузить таблицу стилей

application.html.erb содержит

<!-- From ruby begin --> 
    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 

<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 
    <%= csrf_meta_tags %> 

    <%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" %> 
    <%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" %> 
    <%= stylesheet_link_tag "style" %>      <!-- From template --> 
    <%= stylesheet_link_tag "style.ie7" %>     <!-- From template --> 
    <%= stylesheet_link_tag "style.responsive" %>    <!-- From template --> 
    <%= javascript_include_tag "script.js" %>     <!-- From template --> 

    <% # javascript_include_tag 'defaults' %> 


    <%= csrf_meta_tags %> <!-- cross-site request forgery protection parameter --> 

<!--[if lt IE 9]><script src="https://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--> 
<link rel="stylesheet" href="style.css" media="screen"> 
<!--[if lte IE 7]><link rel="stylesheet" href="style.ie7.css" media="screen" /><![endif]--> 
<link rel="stylesheet" href="style.responsive.css" media="all"> 

Когда я визуализации страницы, текст не появляется, но без графики. Я проверил серверное приложение/папки, и изображения, css и js-файлы выглядят там.

Я сделал рейк-активы: прекомпилировал. Из изображения, которое я приложил, Кажется, что есть какой-то стиль.

Assets.rb содержит

Rails.application. config.assets.precompile = ['*.js', '*.css', '*.css.erb']  #for Production 
    Rails.application.config.assets.precompile += %w[*.png *.jpg *.jpeg *.gif]  #for Production 
    Rails.application.config.assets.precompile += %w(script.js) 
    Rails.application.config.assets.precompile += %w(script.responsive.js) 
    Rails.application.config.assets.precompile += %w(style.css) 
    Rails.application.config.assets.precompile += %w(style.responsive.css) 
    Rails.application.config.assets.precompile += %w(style.ie7.css) 

production.rb имеет

# Apache or NGINX already handles this. 
config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present? 
    # config.serve_static_files = true 

Если я смотрю в моем журнале производства, я вижу ошибки для стиля и стиля-responsive.css

I, [2016-08-02T23:26:31.129752 #12930] INFO -- : Started GET "/style.responsive.css" for 108.16.108.174 at 2016-08-02 23:26:31 -0400 
I, [2016-08-02T23:26:31.133345 #12921] INFO -- : Started GET "/style.css" for 108.16.108.174 at 2016-08-02 23:26:31 -0400 
F, [2016-08-02T23:26:31.200006 #12921] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/style.css"): 
    actionpack (4.2.5.2) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call' 
    actionpack (4.2.5.2) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' 

Я думал, что ubuntu/рельсы цифрового океана будут обслуживать статические активы «из коробки»

Это будет низким сайт использования, так что я могу жить с только получать рельсы для обслуживания статических активов (я пытался config.serve_static_files = true и это, похоже, не работает)

Я считаю, что лучшим решением было бы обеспечить что NGINX обслуживает статические файлы, но я не уверен, как это проверить.

Кроме того, если я смотрю на источник страницы, я вижу отпечатки пальцев. Если я нажму на один из них, я увижу файл css.

<!-- The following is added to connect the template to ruby --> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script> 
    <link rel="stylesheet" media="screen" href="/assets/style-bf197dd0f531130964616a51129935da1e598a02a4875c978ba88a1150f8c83b.css" />      <!-- From template --> 
    <link rel="stylesheet" media="screen" href="/assets/style.ie7-0f23e9b569741aa18fa91789e00826aaee0273a38bc82afb353167975630e750.css" />     <!-- From template --> 
    <link rel="stylesheet" media="screen" href="/assets/style.responsive-8d9d7ff8e357d6e354b2c30b39e501b0911171f97f4618b2b6ae29d23ac20991.css" />    <!-- From template --> 
    <script src="/assets/script-f4f7e1cb97bf4be4d67e931693643a62b9c0fbd4250eb7e1a26a8c0cf555f4e3.js"></script>     <!-- From template --> 
<!-- < %= javascript_include_tag "jquery.are-you-sure" %> --> <!-- Dirty form checker --> 

Я ДУМАЮ, что сервер ищет таблицу стили в следующем application.html.erb. Однако, если я удалю этот блок кода, я до сих пор не получаю свои изображения, и я также не вижу никаких фатальных ошибок в моем журнале. Я не уверен, что блок ниже необходим.

<!--[if lt IE 9]><script src="https://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--> 
    <link rel="stylesheet" href="style.css" media="screen"> 
    <!--[if lte IE 7]><link rel="stylesheet" href="style.ie7.css" media="screen" /><![endif]--> 
    <link rel="stylesheet" href="style.responsive.css" media="all"> 

enter image description here

+0

, где ваши CSS файлы, расположенные в вашем приложении? – Sravan

+0

Проблема была в style.css. Мне нужно, чтобы изображения вызывались как images/header.jpg, а не только header.jpg. –

ответ

1

просто перейдите в приложение/активов/стилей/application.css или .scss или .sass затем включить таблицу стилей удалить их из application.rb

если вы есть aplication.css

//=require style 
//=require style.responsive 

, если у вас есть aplication.sass

@import 'style' 
@import 'style.responsive' 

если у вас есть-анкету.СКС

@import "style"; 
@import "style.responsive"; 

Теперь ваша проблема должна быть решена