/ / import súboru CSS z SCSS / Rails 3.2 w / sass-rails - ruby-on-rails-3.1, kompas-sass, sass

importovanie súboru CSS z SCSS / Rails 3.2 w / sass-rail - ruby-on-rail-3.1, compass-sass, sass

Mám súbor CSS v zoznamoch dodávateľov / aktív / štýlov a rád by som naň odkazoval v mojom súbore application.css.scss (alebo v jeho blízkosti). Dúfal som, že sa to len podarí @import plus cesta k majetku:

@import asset-path("lionbars.css", stylesheet)

Ale žiadne také šťastie: mám

Invalid CSS after "@import ": expected uri, was "asset-path("lio..."

Buď mám nesprávnu syntax, alebo je to preto, lebo @import Neprijíma dynamické reťazce, ale nie som si istý.

Takže vidím niekoľko možností. Môžem buď:

  1. Zistite vhodnú syntax, ak ide iba o problém so syntaxou.
  2. Premenujte môj súbor na application.css.scss.erb a nahraďte ďalšie existujúce odkazy na cestu aktív <%= asset_path("random/asset.png") %>, Vďaka tomu je môj zvýrazňovač syntaxe veľmi zmätený a pravdepodobne nie je taký efektívny. Inak to funguje.
  3. Premenujte môj súbor css na _lionbars.css.scss a zavolajte @import "lionbars", Dva dôvody, prečo to nechcem robiť, je všeobecne povedané, že # 1 sa nechcem dotýkať predaného kódu a # 2 tam sú niektoré konkrétne veci IE8 (<!--[if IE 8]>blahblah<![endif]-->), ktoré nemôžu „ísť do súboru sssss“ a nechcem ich rozdeľovať (a stále musím nájsť riešenie pre kód IE8 a ako to zahrnúť).

Takže dúfam, že odpoveď je # 1, ale nie som si istý. Nejaké nápady?

odpovede:

1 pre odpoveď č. 1

Sass koľajnice obsahuje pomocníkov, ako sú napr asset-path, Inak Sass a Compass nemajú žiadnu koncepciu asset-path.

Alternatívne môžete použiť add_import_path vo vašom config.rb. Pozrite si referenciu ku konfigurácii kompasu


1 pre odpoveď č. 2

Správne riešenie: @import "lionbars", Sass-rails prispôsobuje @import smernice na automatické použitie plynovodu.


0 pre odpoveď č. 3

Na Sass koľajnice web je celkom jasný:

Ozubené kolesá poskytujú niektoré smernice, ktoré sú umiestnené vo vnútri komentárov nazývaných vyžadovať, vyžadovať a vyžadovať. NEPOUŽÍVAJTE ich vo svojich súboroch SASS / SCSS.

... ale skúsil som to v dev aj v produkcii pre priame css súbory a fungovalo to dobre:

/*
* This is a manifest file that"ll be compiled into application.css, which will include all the files
* listed below.
*
* ...
*
*= require_self
*= require_tree .
*= require lionbars
*/

Ak teda nikto nemá lepšiu predstavu, takto to jeBudem musieť urobiť. Musel som presunúť konkrétny komentár IE8 do môjho rozloženia, pretože Sprockets sa hodili snažiť ho zostaviť, ale stále mi to pripadá ľahšie ako alternatívy. Ak máš lepšie riešenie ako toto, Rád by som to počul! Nie som nadšený z riešenia, ktoré sa výslovne zamračilo na stránke sass-rails.