配置要缓存的这些XML文件的最佳做法是什么?
编辑1:
我应该提到浏览器不会查看这些XML文件.移动应用程序在“字段”中查看它们.因此,遗憾的是发送“http / 1.0 304未修改”将无法正常工作.
编辑2:
如果重要,我正在使用Phusion Passenger来托管我的Rails应用程序.
解决方法 如果您正在使用rails的静态页面缓存并通过apache提供服务,那么只需在URL上使用显式的xml扩展即可.如果您只提供xml而且没有HTML,那么在查找缓存文件时,您也可以将apache conf编辑为默认为xml而不是HTML.
缓存到期对于代码和测试来说是一件相当无聊的事情,但由于您很少重新生成文件,因此您可能只会使整个缓存失效.
这是一个精心挑选的文件和摘录,来自我如何在一个很小的,很少更新的rails网站中处理缓存:
在要缓存的控制器中
class XmlThingController < ApplicationController caches_page :index,:show,:other_actions
在修改可能导致xmls更改的数据的控制器/ *** 作中:
class admin::SomeCrudController < AppplicationController cache_sweeper :stupID_master_sweeper,:only => [ :save,:destroy ]
在’config / environments / production.rb’中
config.action_controller.page_cache_directory = file.join(RAILS_ROOT,'public','cache')
在您的vhost apache conf中的某个地方:
# 1.4. Handle caching# 1.4.1. prevent direct cache accessRewriteRule ^/cache - [F,L]# 1.4.2. for indexRewriteCond %{document_ROOT}/cache/index.HTML -fRewriteRule ^/?$/cache/index.HTML [L]# 1.4.3. for explicitly specifIEd extensionsRewriteCond %{document_ROOT}/cache%{REQUEST_URI} -fRewriteRule ^(.*)$/cache [L]# 1.4.4. with HTML extension implIEdRewriteCond %{document_ROOT}/cache%{REQUEST_URI}.HTML -fRewriteRule ^(.*)$/cache.HTML [L]# 1.5. Finally,proxy everything else to mongrelRewriteCond %{document_ROOT}/%{REQUEST_filename} !-fRewriteRule ^/(.*)$balancer://your-website-proxy%{REQUEST_URI} [P,QSA,L]
愚蠢的清扫工,每当它被触发时清除整个缓存:
class StupIDMastersweeper < ActiveRecord::Observer observe Foo,bar # All models that affect caching here def after_save(record); end def after_destroy(record); end def filter(controller) # sweep everything. `cd #{RAILS_ROOT} && RAILS_ENV=#{ENV['RAILS_ENV']} rake cache:clear` endend
liB /任务/ cache.rake
namespace :cache do desc "Remove all cached files" task :clear do puts `rm -rf #{RAILS_ROOT}/public/cache/*` end end
如果您希望将默认隐含扩展名默认为xml,请更改1.4.2索引规则的扩展名,以及以下内容:
# 1.4.4. with HTML extension implIEdRewriteCond %{document_ROOT}/cache%{REQUEST_URI}.HTML -fRewriteRule ^(.*)$/cache.HTML [L]
至:
# 1.4.4. with xml extension implIEdRewriteCond %{document_ROOT}/cache%{REQUEST_URI}.xml -fRewriteRule ^(.*)$/cache.xml [L]总结
以上是内存溢出为你收集整理的ruby-on-rails – Rails缓存 – XML文件?全部内容,希望文章能够帮你解决ruby-on-rails – Rails缓存 – XML文件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)