【问题标题】:stylesheet_link_tag assets directory in Rails 4Rails 4 中的 stylesheet_link_tag 资产目录
【发布时间】:2022-04-30 02:28:29
【问题描述】:

我刚开始在Ruby On Rails中开发,我无法解决这个问题:当我在文件/app/view/layouts/application.html.erb中使用helper stylesheet_link_tag时,我只能到达/中的css文件app/assets/stylesheets,但是如果我想包含一些在那个目录中找不到但在/app/assets/example 中的css文件,例如,我该怎么做(总是使用helper stylesheet_link_tag)?

我试图查看论坛上有关此主题的其他页面,但它们没有帮助,我希望通过更具体的人可以帮助我...

【问题讨论】:

    标签: html ruby-on-rails ruby-on-rails-4


    【解决方案1】:

    我解决了这个问题:在文件的路径中应该只放置文件名而不是整个路径,rails 将搜索 /assets 的所有子文件夹中的 css 文件。例如,如果我需要 /assets/css_dir/layout.css 中的 css 文件,我应该只编写以下代码:

    <%=  stylesheet_link_tag "layout" %> 
    

    仅此而已。这个解决方案对我有用。

    【讨论】:

      【解决方案2】:

      &lt;%= stylesheet_link_tag "example/file" %&gt; 应该适用于位于/app/assets/example 的样式表。见Rails docs

      【讨论】:

      • 我已经尝试过了:它不起作用。如果我使用以下行: Rails 生成此错误 "ActionController::RoutingError (No route matches [GET] "/stylesheets/example/app.css" )"
      • 只有当文件为空或不存在时才会触发该错误。
      • 我知道,但是文件不是空的,如果我将它移动到 assets 下的 stylesheets 子目录,它可以正常工作,不会触发异常。这是一个非常奇怪的情况。
      • @samuele - 我经常与此作斗争,因为每次发布 Rails 时,资产管道都会变得更糟。确保通过 config/initializers/assets.rb 加载文件 - 通过通配符或单独加载。这样,您就可以省去 stylesheet_link_tag。但是,如果您不想把那张纸装到任何地方,那就是一场艰苦的斗争。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      • 2015-01-01
      • 1970-01-01
      • 2014-03-05
      相关资源
      最近更新 更多