如何预处理" public" Rails中的文件夹?

时间:2017-02-27 04:10:21

标签: ruby-on-rails

我有一个javascript文件,我需要从我的网站外部(从外部网站)访问,但我也想预处理该文件(即使用Rail的资产管道)所以我可以在JS文件中使用一些环境变量。

知道怎么做吗?如果我将JS文件放入公用文件夹,我无法预处理它。但是,如果我将文件放入资产文件夹结构中,我可以预处理它,但是,它不会公开。

请原谅我的无知,我对此不熟悉! ;)

干杯,

2 个答案:

答案 0 :(得分:2)

您在资源文件夹中放置的内容确实是公开的。如果它不能链接到javascripts,样式表和图像那里。唯一的问题是rails为了缓存破坏目的而散列文件的名称(仅在生产中)。

作为一种解决方法,您可以创建一个控制器操作,使用javascript_url帮助程序获取散列文件路径并重定向到它。

class ThisController < ApplicationController
  def some_action
    redirect_to ActionController::Base.helpers.javascript_url('javascripts/your_file')
  end
end

答案 1 :(得分:0)

也许尝试使用grunt构建一个任务,将已处理的javascript文件导出到公用文件夹,并在每次构建时覆盖旧版本。

http://developers.mobilesystem7.com/blog/post/replacing-rails-asset-pipeline-with-grunt-bower-browserify/