Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在Rails标头中使用Webpacker资源内联CSS_Ruby On Rails_Webpacker - Fatal编程技术网

Ruby on rails 如何在Rails标头中使用Webpacker资源内联CSS

Ruby on rails 如何在Rails标头中使用Webpacker资源内联CSS,ruby-on-rails,webpacker,Ruby On Rails,Webpacker,我想在我的html中内联一些CSS。我以前用链轮来做过这件事,在我的layouts/application.html.erb中放了类似的东西 <style> <%= Rails.application.assets["application.css"].to_s.html_safe %> </style> 现在我想做同样的事情,但是使用Webpacker捆绑的CSS资产 我可以通过Webpacker.manifest.lookup(“ap

我想在我的html中内联一些CSS。我以前用链轮来做过这件事,在我的layouts/application.html.erb中放了类似的东西

<style>      
  <%= Rails.application.assets["application.css"].to_s.html_safe %>
</style>

现在我想做同样的事情,但是使用Webpacker捆绑的CSS资产

我可以通过
Webpacker.manifest.lookup(“application.css”)
获取文件路径,但我缺少获取内容并将其嵌入布局的最新部分

这背后的理由:

为了提高页面速度,我想将我的关键CSS嵌入HTML的标题中。使用网页包和PostCss工具(PurgeCss)。我能够得到一个非常紧凑的我的CSS的上面折叠我的主页

CSS的其余部分与常用的包帮助程序异步加载

更新1

这是我写的文章的链接,感谢你的回答


让我们考虑在代码< App/JavaScript /包/应用程序中有一行。

import`../css/application.css'
还有一个包含一些有用内容的文件
app/javascript/css/application.css

然后你拼写


而且它很有效

别忘了:

  • config/webpacker.yml
  • Exec
    rake webpacker:在更改这些
    .css
    和/或
    .js
    文件后编译
    。或者使用
    webpack-dev-server
    进行以下操作
  • 启用(尽管这是开发的默认设置)
    config.public\u file\u server.enabled=true(如注释中提到的@Adrien),以便通过
    puma提供
    .js
    资源

  • 也许你想补充一个问题,为什么你需要这样包含一个资产。当然,只是在这个
    Rails.application.assets
    在生产中是
    nil
    。谢谢,这正是我要找的。工作起来很有魅力。对不起,我的坏实际上在重新启动服务器后,我得到了一个没有这样的文件或目录@rb_sysopen error您使用哪种环境?应用程序根目录下是否有
    /public/packs/application.css
    文件?在
    config/webpacker.yml
    中是否有
    extract\u css
    选项?我处于开发模式。我在我的
    webpacker.yml
    配置中确实有
    extract\u css:true
    ,如果我以正常方式添加我的包,那么在我的html中它是从
    /public/packs/application-[hash id].css中获取的。但是这是在开发中,所以我在我的公用文件夹中看不到它