2012-01-26 10 views
5

Próbuję użyć CKEditor w aplikacji Rails 3.1. Mam katalog ckeditor w app/assets/javascripts/ckeditor /, z usuniętymi zewnętrznymi materiałami, takimi jak nieskompresowane i zmodularyzowane źródła.Jak zdobyć zasoby programu CKeditor do kompilowania i ładowania w potoku Rails 3.1

Działa dobrze w fazie rozwoju. W środowisku produkcyjnym lub testowym, ckeditor nie może znaleźć własnych plików: config.js, lang/en.js skins/kama/editor.css. Widzę, że te pliki nie są prekompilowane, co ma sens, ponieważ domyślnie potok zasobów nie obejmuje ani nie prekompiluje niczego, co pasuje do /.css/ lub /.js/.

Zgodnie z dokumentami do szyn i previous answers like this one, powinno być możliwe dodanie plików potrzebnych do pliku config.assets.precompile. Jednak pomimo dużego wysiłku nie mogę się dowiedzieć, jaki format mam użyć z config.assets.precompile. Nie jest to udokumentowane i nie podano żadnych przykładów.

Próbowałem wyraźnie dodając pliki według nazwy:

config.assets.precompile << ['config.js', 'en.js', 'editor.css'] 

próbowałem dodawanie regexes, że będzie pasował do plików:

config.assets.precompile << [ /.*config\.js/, /.*en.js/, /.*editor.css/ ] 

Próbowałam jawne dodawanie pełnych ścieżek:

config.assets.precompile << File.join(Rails.root, 'app', 'assets', 'javascripts', 'ckeditor', 'config.js') 
(etc...) 

We wszystkich tych przypadkach (i wszystkiego, co wypróbowałem), uruchamianie zasobów prowizji: prekompilacja nadal nie przenosi potrzebnych plików do publicznych/zasobów. Wszystkie obrazy i tak dalej, ale nie trzy pliki javascript i/lub css CKEditor musi działać.

Jakieś myśli?

+0

Gdzie się jako załączniki do config.assets.precompile? –

Odpowiedz

1

Masz błąd składniowy w kodzie. Atrybut prekompilacji jest tablicą.

można dodać jeden element do tablicy tak:

config.assets.precompile << 'name_of_file.ext' 

Jeśli wartości są w tablicy to trzeba dodać tablicę.

config.assets.precompile += [ /.*config\.js/, /.*en.js/, /.*editor.css/ ] 

Jeśli dodasz, to masz tablicę zagnieżdżoną wewnątrz tablicy prekompilacji, która jest ignorowana.

2

Mam podobne problemy. Skończyło się na użyciu CKEditor bez potoku aktywów :)

Po wypróbowaniu kilku klejnotów, żaden nie działał dobrze w środowisku produkcyjnym. Skończyło się na umieszczeniu cedenta w folderze public aplikacji. Pomija to całkowicie proces potoku, a ckeditor działa również dobrze w produkcji. Brak wstępnej kompilacji zasobów ...

Korzystanie z szyn 3.1, CKEditor 4.1. Chociaż jest to stary wątek, może ktoś to może pomóc ...

Update: Także, jeśli testujesz na lokalnym środowisku produkcyjnym, nie zapomnij, aby ustawić serve_static_assets true w config/environments/production.rb

2

Dla zostało to naprawione przez przesłonięcie domyślnego zadania prekompilacji (użyłem Rails 4 i CkEditor 4).

  1. Do environment.rb config.assets.precompile += ['ckeditor/*']
  2. W application.js //= require ckeditor/init
  3. Tworzenie pliku lib/tasks/precompile_hook.rake i wklej tekst z tej odpowiedzi Precompile hook
+1

Nazwa pliku rake powinna być "lib/tasks/precompile_hook.rake". –

+1

To działa. Jednak nie widzę żadnych obrazów na pasku narzędzi. Wygląda jak ikony.png i brakuje niektórych innych plików obrazów ikon. jakieś pomysły? Dzięki. –

+0

Czy możesz podać dodatkowe informacje? Wersja szyn i cededitor. Czy te obrazy są prekompilowane, czy nie? –

Powiązane problemy