Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 多个公用文件夹,单轨安装_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 3 多个公用文件夹,单轨安装

Ruby on rails 3 多个公用文件夹,单轨安装,ruby-on-rails-3,Ruby On Rails 3,我有一个rails应用程序,我想用于多个站点,每个站点都有不同的设计 我想将rails安装/公共目录更改为其他目录(最终动态更改)。但是,我在更改目录时遇到了一个问题(bug?) 在application.rb文件中,我将paths.public路径更改为“public”以外的内容(比如“site_one”)。代码如下: puts paths.public.paths paths.public = "site_one" puts paths.public.paths 这两个“puts”命令用于

我有一个rails应用程序,我想用于多个站点,每个站点都有不同的设计

我想将rails安装/公共目录更改为其他目录(最终动态更改)。但是,我在更改目录时遇到了一个问题(bug?)

在application.rb文件中,我将paths.public路径更改为“public”以外的内容(比如“site_one”)。代码如下:

puts paths.public.paths
paths.public = "site_one"
puts paths.public.paths
这两个“puts”命令用于调试。现在运行“rails s”,您将看到:

/home/macklin/app/public
/home/macklin/app/site_one
这将验证路径是否正确更改。但是,不久之后,rails抛出以下错误(如果需要完整跟踪,请告诉我):

退出
/usr/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/paths.rb:16:in'method#u missing':从/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.3/lib/action#controller/railtie.rb:47中为#(nomethododerror)定义的“javascripts”方法
我猜它找不到javascripts目录,尽管它显然位于“site\u one”文件夹中


有人知道我为什么会得到这个吗

Duh。只需为样式表和Java脚本再添加2条规则(我想当您更改父路径时,它们会被删除)


我知道这个问题很老了,但我想我在Rails 4.2中找到了答案

您只需将这一行放入
config/application.rb

middleware.use ::ActionDispatch::Static, "#{Rails.root}/another_public_folder_name", index: 'index', headers: config.static_cache_control
这使得
/other\u public\u folder\u name
中的所有文件都由Rails提供服务

这是Rails设置标准
/public
文件夹的方式。我在查看资料来源时发现:

paths.public.stylesheets = "site_one/stylesheets"
paths.public.javascripts = "site_one/javascripts"
middleware.use ::ActionDispatch::Static, "#{Rails.root}/another_public_folder_name", index: 'index', headers: config.static_cache_control