【问题标题】:What is the best place to store static assets (files) in Rails ( pdf forms, xls files, etc)在 Rails 中存储静态资产(文件)的最佳位置是什么(pdf 表单、xls 文件等)
【发布时间】:2011-12-20 20:10:03
【问题描述】:

我有一堆静态资产(不是 jpg、css 和 js)——我需要为用户提供诸如 pdf 表单、xls 之类的文件。他们很少改变。以前我将它们存储在公用文件夹中,但是随着 rails 3.1 中资产管道的引入,现在存储此类文件的最佳位置是什么?

【问题讨论】:

    标签: ruby-on-rails asset-pipeline


    【解决方案1】:

    实际上,我只是通过在 app/assets/files 中创建一个文件夹并将我的 xls 文件粘贴在其中来测试它,然后 rake assets:precompile 任务刚刚拾取它。

    这也需要为 Rails

        # Enable the asset pipeline
    config.assets.enabled = true
    config.assets.paths << "#{Rails.root}/app/assets/files"
    

    【讨论】:

    • 一个问题 - 必须在部署时间之前添加文件。如果您正在预编译(出于性能原因,您几乎必须这样做),则无法将它们添加到生产中(即用户上传)。
    • 是的,这很好 - 这些是资产文件,与我的 js 或 css 文件具有相同的意义。这些是我们提供给用户的表格/手册。在初始部署之后,它们很少更改,就像 css 或 js 一样。对于用户上传的内容,我们有不同的工作流程。
    【解决方案2】:

    此类项目的最佳位置仍在/public 目录中,请记住让您的网络服务器也直接为这些资产提供服务。

    仅当您想利用资产管道时才需要资产目录。资产管道处理从压缩和编译 .coffee.lesssass 文件到将您的 js 和 css 压缩到一个文件中,因此您的网络服务器只需为每个文件提供一个文件。

    当您使用 rake 任务 bundle exec rake assets:precompile 编译资产时,它们无论如何都会移动到您的公共目录。

    【讨论】:

    • 约瑟夫,我实际上正在使用管道。将其公开似乎并不一致。 Jsut 想知道如何从我的应用程序中提供类似于图像或 scss 资产的静态资产
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多