Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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 浏览器| Rails 5.2正在缓存恶意PDF gem生成的PDF视图_Ruby On Rails_Pdf_Browser Cache_Wicked Pdf - Fatal编程技术网

Ruby on rails 浏览器| Rails 5.2正在缓存恶意PDF gem生成的PDF视图

Ruby on rails 浏览器| Rails 5.2正在缓存恶意PDF gem生成的PDF视图,ruby-on-rails,pdf,browser-cache,wicked-pdf,Ruby On Rails,Pdf,Browser Cache,Wicked Pdf,我正在从事一个项目,该项目具有将索引视图导出为PDF的功能。这一切都与gem完美配合,但是,在生产中,生成的pdf由浏览器缓存,因此可能会过时。刷新PDF视图确实会获取最新数据,但简单地导航到PDF视图似乎只使用浏览器缓存的文档。有没有办法防止浏览器缓存PDF视图 控制器 class InvoicesController < ApplicationController # GET /invoices def index @invoices = Invoice.all

我正在从事一个项目,该项目具有将
索引
视图导出为PDF的功能。这一切都与gem完美配合,但是,在生产中,生成的pdf由浏览器缓存,因此可能会过时。刷新PDF视图确实会获取最新数据,但简单地导航到PDF视图似乎只使用浏览器缓存的文档。有没有办法防止浏览器缓存PDF视图

控制器

class InvoicesController < ApplicationController
  # GET /invoices
  def index
    @invoices = Invoice.all

    respond_to do |format|
      format.html
      format.pdf do
        render pdf: "Invoices_#{Time.current.strftime("%Y_%m_%d_at_%H_%M")}",
               template:       'invoices/index',
               show_as_html:   params.key?('debug'),
               title:          "Invoices_#{Time.current.strftime("%Y_%m_%d_at_%H_%M")}", # otherwise first page title is used
               orientation:    :landscape,
               margin:         { top:    15,                     # default 10 (mm)
                                 bottom: 15,
                                 left:   15,
                                 right:  45 },
               footer:         { left: "Extracted: #{Time.current.to_formatted_s(:date_at_time)}",
                                 right: "Page [page] of [topage]" }
      end
    end
  end
end
class InvoicesController

任何建议都将不胜感激。

您只需清除该页面的缓存即可

 class InvoicesController < ApplicationController
    before_action :set_cache_headers

      private

      def set_cache_headers
        response.headers["Cache-Control"] = "no-cache, no-store"
        response.headers["Pragma"] = "no-cache"
        response.headers["Expires"] = Time.now
      end
    end
end
class InvoicesController