8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

CONSULDEMOCRACY:Sass 失败(未找到 sassc-embeded-import 样式表)

anthony sottile 3月前

88 0

用户故事我正在尝试部署 consuledemocracy 的本地实例,如果失败,则出现 Sass::CompileErrorDescription我的系统是 Ubuntu 22.04,我使用以下版本:Rails v6.1.7.7...

用户故事

我正在尝试部署 consuledemocracy 的本地实例,如果失败,则会出现 Sass::CompileError

描述

我的系统是 Ubuntu 22.04,我使用以下版本:Rails v6.1.7.7NodeJS v18.18.2PSQL v14.11Ruby v3.2.3

我已按照本地安装的步骤进行操作,虽然可以部署服务器(bin/rails server -b 0.0.0.0),但访问本地主机时出现以下错误:

Completed 500 Internal Server Error in 5267ms (ActiveRecord: 165.5ms | Allocations: 3295956)

ActionView::Template::Error (Error: Can't find stylesheet to import.
  
1  @import "sassc-embedded-import:19";
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  
  sassc-embedded-import:18 1:9                                                        @import
  /home/singular/consul/consuldemocracy/app/assets/stylesheets/application.scss 10:9  root stylesheet):

sassc-embedded (1.70.1) lib/sassc/embedded.rb:66:in `rescue in render'
sassc-embedded (1.70.1) lib/sassc/embedded.rb:13:in `render'
sassc-rails (2.1.2) lib/sassc/rails/template.rb:40:in `block in call'
sprockets (4.2.1) lib/sprockets/utils.rb:145:in `block in module_include'
sprockets (4.2.1) lib/sprockets/utils.rb:130:in `synchronize'
sprockets (4.2.1) lib/sprockets/utils.rb:130:in `module_include'
sassc-rails (2.1.2) lib/sassc/rails/template.rb:39:in `call'
sprockets (4.2.1) lib/sprockets/processor_utils.rb:84:in `call_processor'
...
...

当我运行 bin/rails assets:precompile 时,我得到:

singular@euprojects: ~/consul/consuldemocracy$ bin/rails assets:precompile
rails aborted!
SassC::SyntaxError: Error: Can't find stylesheet to import. (SassC::SyntaxError)
  
1  @import "sassc-embedded-import:19";
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  
  sassc-embedded-import:18 1:9                                                        @import
  /home/singular/consul/consuldemocracy/app/assets/stylesheets/application.scss 10:9  root stylesheet

Caused by:
Sass::CompileError: Can't find stylesheet to import. (Sass::CompileError)

Tasks: TOP => assets:precompile
(See full trace by running task with --trace)

我觉得好像缺少样式表,但我在网上找不到任何信息。

帖子版权声明 1、本帖标题:CONSULDEMOCRACY:Sass 失败(未找到 sassc-embeded-import 样式表)
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由anthony sottile在本站《ruby》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 单例类包含特定于单个对象的方法。

    对于通用对象来说,这是一个很好的功能。但对于类来说,这至关重要。让我们从对象开始:

    对象的单例类

    实例方法通常在类中定义。同一类的所有实例共享相同的实例方法。单例类位于对象和其所属类之间。它允许每个实例拥有自己的一组方法,独立于其他实例。

    如果我们有两个类, Foo 每个类有 2 个实例 Bar a , b 并且 c , d

    class Foo ; end
    class Bar ; end
    
    a = Foo.new #=> #<Foo:0x00007fc280963008>
    b = Foo.new #=> #<Foo:0x00007f8319016b18>
    c = Bar.new #=> #<Bar:0x00007fa66c8d7290>
    d = Bar.new #=> #<Bar:0x00007f94d5106ac8>
    

    您将拥有此类结构:(简化,不包括模块)

    object          singleton class              class    superclass   ...
    
      a  #<Class:#<Foo:0x00007fc280963008>> 
                                                Foo 
      b  #<Class:#<Foo:0x00007f8319016b18>>        
                                                        Object  BasicObject
      c  #<Class:#<Bar:0x00007fa66c8d7290>>        
                                                Bar 
      d  #<Class:#<Bar:0x00007f94d5106ac8>> 
    

    Ruby 会延迟创建这些单例类,例如在调用 singleton_class .

    因此,在定义方法时 a.hello ,它并不存储在 a 的类 Foo ,而是 a 的单例类中:

    def a.hello
      'hello from a'
    end
    
    a.method(:hello).owner
    #=> #<Class:#<Foo:0x00007fc280963008>>  <-- a's singleton class
    

    因此, b 实例 Foo ,但看不到该方法

    b.hello #=> NoMethodError: undefined method `hello'
    

    我们甚至可以定义一个同名的方法而 b 不会干扰 a

    def b.hello
      'hello from b'
    end
    
    b.method(:hello).owner
    #=> #<Class:#<Foo:0x00007f8319016b18>>  <-- b's singleton class
    
    a.hello #=> "hello from a"
    b.hello #=> "hello from b"
    

    我们还可以定义一个泛型 hello Foo 在每个实例级别上覆盖它:(通常不会这样做,但这是可能的)

    class Foo
      def hello
        'hello'
      end
    end
    
    def a.hello
      "#{super} from a"
    end
    
    def b.hello
      "b says #{super.upcase}!"
    end
    
    a.hello #=> "hello from a"
    b.hello #=> "b says HELLO!"
    
    c = Foo.new
    c.hello #=> "hello"
    

    类的单例类

    以上内容对于类来说尤其重要。每个类都是以下类的一个实例 Class

    Foo.class #=> Class
    

    假设我们想要一种方法 Foo.hello ,我们应该在哪里定义它?

    实例方法通常在实例的类中定义,因此我们 可以 的类 Foo 中定义它

    class Class
      def hello
        'Hello from Foo'
      end
    end
    
    Foo.hello
    #=> "Hello from Foo"
    

    但这会使该方法适用于所有实例 Class

    Bar.hello
    #=> "Hello from Foo"
    
    String.hello
    #=> "Hello from Foo"
    

    最好有一个 Foo 实例独有的地方。那个地方就是 Foo 的单例类:

    def Foo.hello
      'Hello from Foo'
    end
    

    或者

    class Foo
      def self.hello       # <-- self is Foo, so this is just "def Foo.hello"
        'hello from Foo'
      end
    end
    

    与上面类似 a.hello ,此方法仅适用于 Foo

    Foo.hello #=> "hello from Foo"
    Bar.hello #=> NoMethodError
    

    我们将这些方法称为 类方法 ,但它们实际上只是单例类的实例方法:

    Foo.method(:hello).owner
    #=> #<Class:Foo>   <-- Foo's singleton class
    
    Foo.method(:hello).unbind == Foo.singleton_class.instance_method(:hello)
    #=> true
    

    如果你将类的单例方法与对象的单例方法进行比较,你会发现它们是相同的。这是因为在 Ruby 中,类也是对象,所有对象的工作原理都相同。

返回
作者最近主题: