2017-02-23 67 views
0

你好,我正试图在我的ruby on rails应用程序中实现Trumbowyg emojis插件。所以我已经参考了下面的链接来获得如何实现插件的指导。Ruby on Rails - 在rails应用程序中设置目录的具体路径

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(); 

如何将图像存储在一个目录下img_dir做参考目录中Rails应用程序(如上图所示)?

+0

运行资产管道后emojis会在哪里结束? –

+0

我所做的就是将png文件放在一个名为emojis的文件夹中,我将其置于我的rails应用程序的应用程序文件夹中。当我设置img_dir为** img_dir时:“<%= Rails.root.join('app','emojis')%>”**,我在控制台中输入以下错误** GET http:/ /localhost:3000/Users/kendrick/Desktop/work/working_hantly/mvp/app/emojis/japanese_ogre.png 404(未找到)** @DaveNewton –

回答

0

选项1:嵌入到资产管道

不知道这个Javascript库的作品究竟如何​​,图像路径需要被添加到资产管道。否则rake assets:precompile将不会在其生成的清单文件中包含所有表情符号图像,并且不知道如何在生产环境中提供这些资产(假设默认的生产环境配置)。

见#配置/初始化/ assets.rb

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

选项2:服务从/public

静态图像的另一个选择是在所有无助于从资产管道这些文件。将Asset Pipeline正确地提供给这些资产而不修改Javascript库以在所有JS和CSS文件中使用asset-url可能是太麻烦了。

而是将文件复制到/public下的目录,以便Rails应用程序可以为它们提供服务。然后调整Javascript配置中的img_dir作为文件在/ public中的路径。例如:如果将文件放在/public/emoji_images中,则为/emoji_images

取决于您如何托管应用程序,您可能必须在config/environments/production.rb中配置serve_static_files