Ruby on rails rails资源管道重复css链接标记

Ruby on rails rails资源管道重复css链接标记,ruby-on-rails,ruby-on-rails-4,asset-pipeline,Ruby On Rails,Ruby On Rails 4,Asset Pipeline,我的application.css文件如下所示: *= require_tree ./external *= require_tree ./production *= require_self *= require custom 我有几个问题: 为什么我需要你自己?application.css不会自动生成包含其中所有内容的css文件,那么为什么我需要说包含它自己呢 该文件为其调用的每个文件生成css链接标记,然后在application.css文件中重复每个文件: <link rel=

我的application.css文件如下所示:

*= require_tree ./external
*= require_tree ./production
*= require_self
*= require custom
我有几个问题:

  • 为什么我需要你自己?application.css不会自动生成包含其中所有内容的css文件,那么为什么我需要说包含它自己呢

  • 该文件为其调用的每个文件生成css链接标记,然后在application.css文件中重复每个文件:

    <link rel="stylesheet" media="all" href="/assets/external/font-awesome-2137eff45e0b64a17b4133bd2ddbdd78.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/external/font-classic1-75487e58c5e0c1ab46da239ad0414945.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/external/font-classic2-9acd884646fab77078ff59ccede6af64.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/external/font-classic3-640d45ed2364d0dff5a81ef9ce2c22fa.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/production/animate-5a353aa5390410216c837f4dbdf1e161.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/production/bootstrap-d2f563dbd757e49a399f0a7ed5febeae.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/production/contacters-64e62ddc273c2f5847f30d698ca14b67.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/production/jcagency-25ee42f4b0d3c4fe0df1eceb8f9fb6f8.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/production/owl.carousel-a12c5f6eb71a13cfc44317722283736c.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/production/owl.theme-691a2eb3c8d303b6416d9876419fec29.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/production/owl.transitions-1b9d47a45c85e9fa3f2f990b6d59519a.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/production/quotes-64e62ddc273c2f5847f30d698ca14b67.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/production/static_pages-64e62ddc273c2f5847f30d698ca14b67.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/production/style-3fe936e1b22ddf4d10e11085bac9a58c.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/production/styles-switcher-c79d19bcbdf90ee639dcfb1363d8f64c.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/application-951210d1179df1d65814be3ec67080c4.css?body=1" data-turbolinks-track="true" />
    <link rel="stylesheet" media="all" href="/assets/custom-235702796c9fbc52681919853d66009b.css?body=1" data-turbolinks-track="true" />
    
    
    
    这不坏吗?我怎样才能让它不再重复

  • 您不必使用
    *=require\u self
    。它所做的是将所有css放置在应用程序中。css的位置由
    所需的css的顺序决定。
    事实上,去掉它是很好的,因为你应该避免把你的css放在application.css中。 如果你不把
    *=require\u self
    放在任何地方,self中的css仍然会被加载,但它将是最后一个包含的样式表

  • 在开发模式下,application.css不会编译成一个大文件(在开发模式下,资产按照清单文件中指定的顺序作为单独的文件使用:)。所以有多个文件是很正常的。很可能您的应用程序中没有重复每个文件。css,是吗

  • 您不必使用
    *=require\u self
    。它所做的是将所有css放置在应用程序中。css的位置由
    所需的css的顺序决定。
    事实上,去掉它是很好的,因为你应该避免把你的css放在application.css中。 如果你不把
    *=require\u self
    放在任何地方,self中的css仍然会被加载,但它将是最后一个包含的样式表

  • 在开发模式下,application.css不会编译成一个大文件(在开发模式下,资产按照清单文件中指定的顺序作为单独的文件使用:)。所以有多个文件是很正常的。很可能您的应用程序中没有重复每个文件。css,是吗


  • 我仍然不确定我是否理解require_self的工作。包含所有文件的application.css文件仍然在预编译时创建,即使我没有包含require_self…这个答案在技术上是正确的,但有点混乱
    require\u self
    指定application.CSS的CSS内容的排列顺序(在开发中)或连接顺序(在生产中)。在您的示例中,application.css显示在style_switcher.css之后,但在custom.css之前。如果您删除了
    require\u self
    ,application.css将默认显示在末尾-即在custom.css.updated my answer之后,以使其更清晰。是的,它仍将被创建。但是(如果在
    application.html.erb
    中有默认的
    true%>
    行,并且没有更改任何默认的预编译设置)您将在dev env上有多个样式表文件,而
    application.css
    中没有任何内容,并且所有样式表都将编译到生产环境中的
    application.css
    。我仍然不确定我是否理解require\u self所做的工作。包含所有文件的application.css文件仍然在预编译时创建,即使我没有包含require_self…这个答案在技术上是正确的,但有点混乱
    require\u self
    指定application.CSS的CSS内容的排列顺序(在开发中)或连接顺序(在生产中)。在您的示例中,application.css显示在style_switcher.css之后,但在custom.css之前。如果您删除了
    require\u self
    ,application.css将默认显示在末尾-即在custom.css.updated my answer之后,以使其更清晰。是的,它仍将被创建。但是(如果在
    application.html.erb
    中有默认的
    true%>
    行,并且没有更改任何默认的预编译设置),那么在dev env中将有多个样式表文件,而
    application.css
    中没有任何内容,并且所有样式表都编译到生产环境中的
    application.css