Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.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 在Heroku上编译CSS资产时出错_Ruby On Rails_Ruby On Rails 3.1_Heroku_Asset Pipeline_Sass - Fatal编程技术网

Ruby on rails 在Heroku上编译CSS资产时出错

Ruby on rails 在Heroku上编译CSS资产时出错,ruby-on-rails,ruby-on-rails-3.1,heroku,asset-pipeline,sass,Ruby On Rails,Ruby On Rails 3.1,Heroku,Asset Pipeline,Sass,我有一个新的RubyonRails应用程序运行在Heroku的Cedar堆栈上。这个应用程序在本地运行得很好。但是,当我尝试登录到我的网站时,我会收到以下错误: Error compiling CSS asset Sprockets::FileNotFound: couldn't find the file 'reset.scss' (in app/app/assets/stylesheets/application.css:4) 我的文件application.css如下所示: /**

我有一个新的RubyonRails应用程序运行在Heroku的Cedar堆栈上。这个应用程序在本地运行得很好。但是,当我尝试登录到我的网站时,我会收到以下错误:

Error compiling CSS asset

Sprockets::FileNotFound: couldn't find the file 'reset.scss'
  (in app/app/assets/stylesheets/application.css:4)
我的文件application.css如下所示:

/**
 *= require_self
 *= require reset.scss
 *= require_tree .
*/
然后,在目录资产/样式表中,我有这些文件

application.css
reset.scss
dialog.scss
etc
我的想法是希望application.css一起编译所有css资产,并在顶部显示reset.scss文件


这是Heroku的一只虫子吗?为什么它在本地工作得很好,但在Heroku上却不工作?

试试下面的方法

  • 确保布局文件中包含application.css。如果没有,则添加以下css链接标记
“所有”%>

  • reset.scss
    重命名为
    reset.css
    (如果它是纯css)或
    reset.css.scss
    (如果它包含scss标记)

  • 应用程序.css
    中,您可以通过
    *=require reset
    进行请求。根据rails约定,跳过资产的文件扩展名

  • 清除
    require\u tree
    &明确地要求每个文件


最后,如果它仍然不起作用。作为一种解决方法,您可以在
/config/environment/production.rb
中启用资产的运行时编译。只有在第一次命中该资产并因此进行编译时,它才会变慢。初始编译后的请求应为正常速度。

尝试以下操作

  • 确保布局文件中包含application.css。如果没有,则添加以下css链接标记
“所有”%>

  • reset.scss
    重命名为
    reset.css
    (如果它是纯css)或
    reset.css.scss
    (如果它包含scss标记)

  • 应用程序.css
    中,您可以通过
    *=require reset
    进行请求。根据rails约定,跳过资产的文件扩展名

  • 清除
    require\u tree
    &明确地要求每个文件


最后,如果它仍然不起作用。作为一种解决方法,您可以在
/config/environment/production.rb
中启用资产的运行时编译。只有在第一次命中该资产并因此进行编译时,它才会变慢。初始编译后的请求应为正常速度。

另一个选项是使用“rake assets:precompile”本地编译资产,然后将其添加到项目存储库。

另一个选项是使用“rake assets:precompile”本地编译资产,然后添加它们到项目存储库。

如果您使用通常的Rails约定“.css.scss”扩展(即目标语言+渲染器/源语言),您应该能够简单地说“需要重置”,资产管道应该会解决这个问题,我想。您是否尝试过在您的开发模式下编译这些资产?如果您使用通常的Rails约定的“.css.scss”扩展(即目标语言+渲染器/源语言),您应该能够简单地说“需要重置”,资产管道应该会解决这个问题,我想。你试过在你的开发模式中编译这些资产吗?好的,我这么做了,这似乎离我更近了。但是,现在我有了重复的CSS和JS文件。css文件将所有css文件编译成一个大文件(按照我的要求)。但是样式表链接标记被扩展为以下内容,这意味着每个样式表声明出现两次!etcTry摆脱
require\u tree
&明确地要求每个文件。那有帮助吗?好的,我做到了,而且似乎离我更近了。但是,现在我有了重复的CSS和JS文件。css文件将所有css文件编译成一个大文件(按照我的要求)。但是样式表链接标记被扩展为以下内容,这意味着每个样式表声明出现两次!etcTry摆脱
require\u tree
&明确地要求每个文件。那有帮助吗?