为什么我的CSS不能在我的Rails应用程序上运行?

时间:2015-01-31 14:44:02

标签: javascript html css ruby-on-rails asset-pipeline

我是Rails的新手,尽管正在寻找答案,但我一直在努力解决这个问题。

我创建了一个新的应用程序,我正在尝试将Theme Forest Bootstrap模板迁移到应用程序中。我认为这很简单,但到目前为止我都失败了。

这些文件包含以下代码:

应用/视图/布局/ application.html.erb

<head>
  <!-- Meta Tags -->
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- Title -->
  <title>Site</title>
  <!-- Fonts -->
  <link rel="stylesheet" type="text/css"  href='http://fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,700,900,700italic,500italic'>
  <!-- Stylesheets -->
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>

  <!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
  <link rel="stylesheet" href="css/ie.css">
  <![endif]-->
  <!--[if IE 7]>
  <link rel="stylesheet" href="css/fontello-ie7.css">
  <![endif]-->
  <%= csrf_meta_tags %>
</head>

应用/资产/样式表/ application.css

 *= require_self
 *= require_tree .
 *= require bootstrap.min
 *= require perfect-scrollbar
 *= require style
 *= require flexslider
 *= require fontello
 *= require animation
 *= require owl.carousel
 *= require owl.theme
 *= require chosen
 */

应用/资产/ Javascript角/ application.js中

//= require_tree .
//= require modernizr.min
//= require jquery-1.11.0.min
//= require jquery-ui.min
//= require jquery.raty.min
//= require perfect-scrollbar.min
//= require zoomsl-3.0.min
//= require jquery.fancybox.pack
//= require jquery.themepunch.plugins.min
//= require jquery.themepunch.revolution.min
//= require flexslider.min
//= require jquery.iosslider.min
//= require jquery.nouislider.min
//= require owl.carousel.min
//= require chosen.jquery.min
//= require bootstrap.min
//= require turbolinks

由于某种原因,这无法加载我认为是bootstrap-min.js。

如果删除stylesheet_link_tag代码并替换 application.html.erb 文件中的css链接以反映以下内容,我可以让该网页正常运行:

<link rel="stylesheet" href="assets/bootstrap.min.css">
<link rel="stylesheet" href="assets/perfect-scrollbar.css">
<link rel="stylesheet" href="assets/style.css">
<link rel="stylesheet" href="assets/flexslider.css" type="text/css" media="screen" />
<link rel="stylesheet" href="assets/fontello.css">
<link rel="stylesheet" href="assets/animation.css">
<link rel="stylesheet" href="assets/owl.carousel.css">
<link rel="stylesheet" href="assets/owl.theme.css">
<link rel="stylesheet" href="assets/chosen.css"> 

我有一种感觉,我会因为不知道而被记住,但记住我是新手,我必须从某个地方开始!

3 个答案:

答案 0 :(得分:0)

您需要将各种样式表(例如bootstrap.min.css)从assets/bootstrap.min.css移至资产/样式表/ bootsrap.min.css&#39;。

资产/样式表文件夹中的任何内容都会由于此标记而被资产管道选中:*= require_tree .并由<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>包含在您的应用中。 Rails Asset Pipeline将连接并缩小您的所有资产。除了默认值之外,您通常不必在application.css中使用require。

在此处阅读有关Rails Asset Pipeline的更多信息:http://guides.rubyonrails.org/asset_pipeline.html

另外我建议使用bootstrap作为gem而不是手动包含资产。在此处阅读更多内容:https://github.com/twbs/bootstrap-sass

答案 1 :(得分:0)

我已经整理好了!

我认为CSS中肯定存在冲突。我

 *= require_tree .

现在工作正常。我还发现JS存在问题,我也将其删除了。

不确定这是否可行,但我欢迎任何建设性意见。

答案 2 :(得分:0)

我看到了这个错误。这是execjs的编码问题。我在这个帖子上找到了解决方案(ExecJS::RuntimeError on Windows trying to follow rubytutorial)我选择了这个选项 - 更令人满意!