gpt4 book ai didi

css - 如何在不破坏所有内容的情况下 stub Sprockets 4 中的 Assets ?

转载 作者:行者123 更新时间:2023-12-05 07:12:55 26 4
gpt4 key购买 nike

我有几个不同的样式表,它们应该是相互排斥的,我们称它们为 light.css.scss 和 dark.css.scss。到目前为止,我的 Assets 管道包括:

在 app/assets/stylesheets 文件夹中创建文件:

application.css
light.css.scss
dark.css.scss

将它们包含在我的 initializers/assets.rb 中:

Rails.application.config.assets.precompile += %w( light.css.scss )
Rails.application.config.assets.precompile += %w( dark.css.scss )

在我的 application.css 文件中删除它们:

/*
*= require_self
*= require_tree .
*= stub dark.css.scss
*= stub light.css.scss
*/

然后在需要时手动要求它们:

<% if subdomain == "light" %>
<%= stylesheet_link_tag "light" %>
<% else %>
<%= stylesheet_link_tag "dark" %>
<% end %>

效果很好,但后来我将我的 Sprockets gem 升级到 4.0,一切都坏了。事实证明我需要一个 assets/config/manifest.js 文件,但实际上我能在该文件上找到的唯一信息是 this ,那家伙说他也找不到任何信息,而且他的应用程序在空白应用程序上运行良好。使用空白文件时,我会收到如下错误:

#<ActionView::Template::Error: Asset `favicons/dark.png` was not declared to be precompiled in production.

暗示 list 文件负责预编译所有 Assets 。但是当我将样板代码输入其中时:

#manifest.js
//= link_tree ../images
//= link_directory ../javascripts .js
//= link_directory ../stylesheets .css

我明白了:

#<ActionView::Template::Error: couldn't find file 'dark.css.scss' with type 'text/css'

无论我做什么,我都会收到各种类似的未找到文件错误。当我从我的 application.css 取消 stub 样式表文件时,我没有收到错误,但随后所有样式混合在一起,这是一个设计噩梦。我收集到 application.css 正在“隐藏”文件,然后 manifest.js 在找不到它们时感到困惑,但我不知道该怎么做。我尝试从 application.css 取消 stub 并在 manifest.js 中 stub ,但这也不起作用。真正奇怪的是我找不到任何关于 manifest.js 文件应该如何工作的信息。

有谁知道我怎样才能保留我的样式表文件而不破坏我的整个管道?

最佳答案

答案实际上很简单,问题出在我的 application.css 中的 require_tree . 上。我只是删除了其中的所有内容,并在 manifest.js 中使用 .css 而不是 .css.scss 一个一个地添加了我的样式表,如下所示:

//= link dark.css
//= link light.css

然后像以前一样根据需要包含文件。现在它们都已预编译但不会相互干扰。

关于css - 如何在不破坏所有内容的情况下 stub Sprockets 4 中的 Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60271732/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com