0

我有一个动作,它生成一个 PDF 文件并将其保存在 /public/output.pdf 中。

当我设置

config.serve_static_assets = false

找不到这个文件。

怎么了 ?

4

2 回答 2

1

文档中:

“config.serve_static_assets 将 Rails 本身配置为提供静态资产。默认为 true,但在生产环境中关闭,因为用于运行应用程序的服务器软件(例如 Nginx 或 Apache)应该提供静态资产。与默认设置不同在运行(绝对不推荐!)或使用 WEBrick 在生产模式下测试您的应用程序时,这是真的。否则,您将无法使用页面缓存,并且对公共目录下定期存在的文件的请求无论如何都会影响您的 Rails 应用程序。

这意味着如果您将其设置为 false,Rails 将不会从您的公用文件夹中提供任何资产,因为它假定前端 Web 服务器 (apache/nginx) 将处理它。这吸取了 Rails 上的负载,因为前端服务器在直接提供文件时效率要高得多。

于 2013-04-23T00:36:52.097 回答
0

经过测试,我得出了这样的结论:

1) 使用命令时

rails s -e production

Rails 只会提供静态文件。编译资产后创建的任何其他文件都不会被发现。

要处理这个问题,您需要在 Apache、Nginx 或其他 Web 服务器下执行您的应用程序。这些网络服务器将为您提供这些文件。

这看起来很明显,但不适合初学者。

于 2013-04-23T08:39:38.300 回答