ruby on rails - 访问公共目录时出错

时间:2011-05-06 17:20:39

标签: ruby-on-rails ruby

我想问你是否有可能显示我想要的数据 保存在/ public / my_dir_for_data。

如果我尝试显示此目录中的图像,则会出现“路由错误”。 可能在我将数据保存到我的应用程序的根目录时,例如 / my_data,一切都会好的......但我喜欢这种RoR结构 应用程序,我会很高兴,如果我可以使用目录中 /公共...

存在任何方式,该怎么办? (同时安全吗?)

2 个答案:

答案 0 :(得分:6)

如果文件存在,rails将不会进入控制器堆栈,如果找不到该文件,它将认为它是一个动态操作并进入控制器堆栈。

因此,如果某个文件存在于#{Rails.root}/public/directory/file.png并导航到domain.com/directory/file.png,那么它应该可以呈现该文件。

您确定双方的所有目录和文件名都相同吗?

答案 1 :(得分:0)

上述问题是由config / environment / production.rb文件中的配置设置引起的。 如果添加以下行,问题将得到解决。 config.serve_static_assets = true

但是这条线因为rails 4而被弃用,它将在rails 5.0中删除。为此,引入了如下的新配置参数。您将收到如下警告,但将提供静态文件。

弃用警告:配置选项config.serve_static_assets已重命名为config.serve_static_files以阐明其角色(它仅支持提供public文件夹中的所有内容,并且与资产管道无关)。在Rails 5.0中将删除serve_static_assets别名。请相应地迁移配置文件。

因此,如果您将config.serve_static_assets参数用于true,那么这样做也会更好。