2017-02-23 1 views
0

Hallo Ich versuche, Trumbowyg Emojis Plugin in meinem Ruby on Rails-Anwendung zu implementieren. Deshalb habe ich auf den folgenden Link verwiesen, um zu erfahren, wie man das Plugin implementiert.Ruby on Rails - bestimmten Pfad zum Verzeichnis in Schienen App

https://github.com/Alex-D/Trumbowyg/blob/master/examples/plugins/emoji.html

  $('#editor').trumbowyg({ 
      btns: [['emoji']] 
      }); 
      function initEmoji() { 
      emojify.setConfig({ 
       img_dir : '../../bower_components/emojify.js/dist/images/basic/', 
      }); 
      emojify.run(); 
      } 
      $('.trumbowyg-editor').bind('input propertychange', function() { 
      initEmoji(); 
      }); 
      initEmoji(); 

Wie speichere ich die Bilder in einem Verzeichnis und Verweis auf das Verzeichnis unter img_dir machen in einer Rails-Anwendung (wie oben dargestellt)?

+0

Wo enden die Emojis nach dem Durchlaufen der Asset-Pipeline? –

+0

was ich getan habe, war die PNG-Dateien in einen Ordner namens Emojis, die ich in den App-Ordner meiner Rails-App platziert. Wenn ich das img_dir auf ** img_dir setze: "<% = Rails.root.join ('app', 'emojis')%>" **, bekomme ich den folgenden Fehler in der Konsole ** GET http://localhost:3000/Users/kendrick/Desktop/work/working_hantly/mvp/app/emojis/japanese_ogre.png 404 (nicht gefunden) ** @DaveNewton –

Antwort

0

Option 1: Einbettung in Asset-Pipeline

Ohne genau zu wissen, wie diese Javascript-Bibliothek funktioniert, das Bild Pfad zur Asset-Pipeline hinzugefügt werden muss. Andernfalls enthält rake assets:precompile nicht alle Emoji-Images in der von ihm generierten Manifestdatei und weiß nicht, wie diese Assets in der Produktionsumgebung bereitgestellt werden sollen (unter der Annahme der Standardkonfiguration der Produktionsumgebung).

See # config/initializers/assets.rb

# Add additional assets to the asset load path 
Rails.application.config.assets.paths << Rails.root.join('path', 'to', 'emoji', 'image', 'directory') 

Option 2: Serve statische Bilder von /public

Eine weitere Möglichkeit ist nicht auf all diese Dateien aus der Asset-Pipeline dienen. Es kann zu mühsam sein, die Asset-Pipeline dazu zu zwingen, diese Assets korrekt bereitzustellen, ohne die Javascript-Bibliothek so zu ändern, dass sie asset-url in allen JS- und CSS-Dateien verwendet.

Kopieren Sie stattdessen die Dateien in ein Verzeichnis unter /public, damit die Rails-App sie bedienen kann. Dann passen Sie die img_dir in Ihrer Javascript-Konfiguration an den Pfad an, in dem sich die Dateien in/public befinden. Beispiel: /emoji_images Wenn Sie die Dateien in /public/emoji_images setzen.

Je nachdem, wie Sie die App hosten, müssen Sie möglicherweise serve_static_files in config/environments/production.rb konfigurieren.