Ruby on Rails - 在rails app中设置目录的特定路径

时间:2017-02-23 17:57:40

标签: ruby-on-rails ruby

您好我试图在我的ruby on rails应用程序中实现Trumbowyg emojis插件。所以我已经参考了下面的链接,以获得有关如何实现插件的指导。

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

如何将图像存储在目录中并在rails应用程序中引用img_dir下的目录(如上所示)?

1 个答案:

答案 0 :(得分:0)

选项1:嵌入资产管道

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

请参阅#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')

选项2:从/public

提供静态图像

另一个选择是根本不从Asset Pipeline提供这些文件。如果不修改Javascript库以在所有JS和CSS文件中使用asset-url,强制资产管道正确提供这些资产可能会太麻烦。

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

根据您托管应用的方式,您可能需要在serve_static_files中配置config/environments/production.rb