2012-04-17 55 views
2

我有使用的Sass/CSS的Rails中一個奇怪的錯誤:導軌 - 薩斯 - 1P * x不是有效的CSS值

「1P * x不是有效的CSS值。」

應用程序跟蹤說它來自:

應用程序/資產/樣式表/共享/ form.css.scss:19

但在我的文件中,這條線是:

「input {@include all_borders(1px,solid,red);}」

這就像在p和x之間加了一個「*」。而且,它與其他品牌的產品也有相同的問題。而且......錯誤剛剛出來,我以前從來沒有這樣做過,我沒有改變我的配置文件中的任何東西,我做的唯一的事情就是使用軟件包更新來更新我的寶石。

[編輯]密新代碼:

@mixin all_borders($strength: 1px, $type: solid, $color: black){ 
    border: $strength $type $color; 
} 

[結束編輯]

我也有一些 「錯誤的參數數目(4 1)」 的問題......但再次,昨天一切正常......這就像是我的scss文件的預編譯有問題......我嘗試預編譯時遇到同樣的問題。

有沒有人有線索?我不知道該怎麼辦...

如果可能有幫助:我使用Ruby 1.9.3,Rails 3.2.3,sass 3.1.15和sass-rails 3.2.5,我也發佈我的application.rb中& development.rb文件:

development.rb config.cache_classes =假

config.whiny_nils = true 

config.consider_all_requests_local  = true 
config.action_controller.perform_caching = false 

config.action_mailer.raise_delivery_errors = true 

config.active_support.deprecation = :log 

config.action_dispatch.best_standards_support = :builtin 

config.active_record.mass_assignment_sanitizer = :strict 

config.active_record.auto_explain_threshold_in_seconds = 0.5 

config.assets.compress = false 
config.serve_static_assets = false 

config.assets.debug = true 

application.rb中

require File.expand_path('../boot', __FILE__) 

require 'rails/all' 

if defined?(Bundler) 
    Bundler.require(*Rails.groups(:assets => %w(development test))) 
end 

module MySite 
    class Application < Rails::Application 
    config.autoload_paths += %W(#{config.root}/lib) 

    config.encoding = "utf-8" 

    config.assets.enabled = true 
    config.assets.initialize_on_precompile = false 

    config.assets.version = '1.0' 

    end 
end 

提前感謝您花時間幫助我。 :)

+0

'all_borders'是你定義的混音?當您嘗試直接編譯Sass文件時會發生什麼? (':trace_selectors'選項在這裏可能會有所幫助)。 – steveax 2012-04-17 17:01:49

+0

是的,它是我定義的混合。但即使在「邊距」等常見屬性上也會出現錯誤。 Sass文件的編譯工作正常,我設法運行這個命令:sass --watch input.scss:output.css在啓動時沒有任何錯誤,它不會將「*」添加到生成的css文件的行中Rails正在指出這個問題。 – Kulgar 2012-04-17 17:25:22

+0

你可以發佈實際的mixin代碼嗎?這可能會讓它變得很糟糕 – stephenmurdoch 2012-04-17 17:36:13

回答

1

好吧,我發現了什麼問題是... Pfiew,這是一個艱難的一個發現...

我必須創建一個全新的項目,加入我的破一個的代碼,通過文件歸檔並通過Rails服務器跟蹤問題的發生。

所以我發現,刪除這個文件: /config/initializers/custom_libraries.rb

當時解決的問題。這個文件只有一行:require'ext/string'

所以這個問題必須來自我的自定義字符串方法。

是的,它的確如此。我在字符串類中添加了「to_a」(to_array)方法,因爲本地Ruby字符串類沒有此方法。方法是:

def to_a 
    return self.chars.to_a 
end 

所以評論這個方法解決了我的CSS問題。我認爲sass-rails gem或CSS相關的已經創建了這個方法,並將其用於編譯或其他CSS的東西,而我的「to_a」字符串方法肯定會搞砸了。但我只是猜測...

當然,Rails的錯誤並沒有幫助找到答案。有誰知道我可能如何更快地發現問題?也許一個特定的調試工具推薦?

我將從這一不幸事件中學習:永遠不要爲特定的Ruby類創建自己的方法,其名稱與其他Ruby類方法過於相似。