gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:15:35 26 4
gpt4 key购买 nike

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

我想将 rails 安装/public 目录更改为其他内容(最终动态)。但是,我遇到了一个问题(错误?)更改目录...

在我的 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 抛出以下错误(如果您需要完整跟踪,请告诉我):
Exiting
/usr/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/paths.rb:16:in `method_missing': undefined method `javascripts' for #<Rails::Paths::Path:0x7f422bd76f58> (NoMethodError) from /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.3/lib/action_controller/railtie.rb:47

我的猜测是它找不到 javascripts 目录,即使它显然位于“site_one”文件夹中。

有谁知道我为什么会得到这个?

最佳答案

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

您只需将此行放在您的 config/application.rb 中:

middleware.use ::ActionDispatch::Static, "#{Rails.root}/another_public_folder_name", index: 'index', headers: config.static_cache_control

这使得 /another_public_folder_name 中的所有文件由 Rails 提供服务。

这是 Rails 用来设置标准的方式 /public文件夹。我发现它检查来源:

https://github.com/rails/rails/blob/52ce6ece8c8f74064bb64e0a0b1ddd83092718e1/railties/lib/rails/application/default_middleware_stack.rb#L24

关于ruby-on-rails-3 - 多个公用文件夹,单轨安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4600364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com