2015-07-10 60 views
2

我们正在开发中使用运行Rails 4.2.x。我们在标题部分有一个徽标图像(app/views/layouts/_header1.html.erb)。对徽标图像进行了修改,并将更新的图像上载到与原始图像具有相同文件名的服务器(至应用程序/资产/图像)(原始图像被覆盖)。图像列出了的link_to标签在_header1.html.erb:无论我们尝试什么,Rails 4.2映像缓存中的特定映像都不会更新

<div id="header1_left"> 
    <div id="logo"> 
     <%= link_to(image_tag("ourlogo.svg"), root_path) %> 
    </div> 
</div> 

我们正在使用在CentOS 6乘员5当我们在浏览器中查看页面,一秒钟,你看到一个校验和值出现在该图像的位置,然后图像出现。我们尝试使用任意值更新_header1.html.erb以确认我们在浏览器中看到更新。无论我们尝试什么,Rails仍然在服务于传统形象。我们曾尝试以下:

  • 耙资产:清洁
  • 耙资产:揍
  • 轨C,然后Rails.cache.clear
  • 手动RM -rfing的/ tmp /缓存/资产/发展
  • 将图像上载至应用程序/资产/图像用不同的文件名,然后更新_header1.html.erb以使用新的文件名
  • 加入:“数据没有的TurboLink” =>真到的link_to的端部调用包含image_tag
  • 完全清除缓存所有的浏览器,博致残通过Firefox中的Firebug缓存,访问来自新机器还没有在所有
  • 访问的网站重启httpd,该网站多次
  • 重新启动CentOS的服务器完全
  • 检查使用萤火虫图像元素和搜索匹配所提供的基于校验和文件名或该文件名的片段,使用查找/ -iname“part_of_filename”的任何文件开发服务器的文件系统,updatedb的/定位等
  • 迁移该网站完全到一个新的服务器(rsyncing -arvP来自所有数据这Rails的应用程序的目录使用其他乘客的CentOS 6主机,同样的问题出现在新主机上)
  • 确认以下是配置/环境/ development.rb设置:

    config.action_controller.perform_caching = false 
    
    config.cache_store = [:null_store] 
    
    config.cache_classes = false 
    

有谁有任何尘世的想法可能是什么问题?文件名是正确的,我们一再确认文件app/assets/images/ourlogo.svg是正确的文件。在哪里可以缓存?它可能是turbolinks?它可能是乘客吗?它可能是Apache吗?

+0

图像的副本是否存在于“公共/资产”目录中? – kevinthompson

+0

谢谢你的回应。不,我刚刚检查了应用/资产/图片中的所有图片,并且它们都是徽标的当前版本。我们在这个Rails 4.2开发网站上没有公共/资产目录。/public中存在的所有内容是404.html,422.html,500.html,favicon.ico和robots.txt。没有子目录。该网站仍在加载无法在应用/资产/图片或公共目录中存在的徽标的旧版本。 – JimboTwice

+0

注意:我创建了公共/资产并在那里复制了已知好的图像,循环httpd,rake资产:clobber,对多个干净的浏览器仍然没有影响。 – JimboTwice

回答

0

终于,我们解决了这个问题。它事实上并不是Rails缓存问题,而是图像本身(显然)受到各种机器字体设置的影响。我们的设计师将图像转换为矢量格式,现在一切正常。非常感谢您的帮助和反馈。希望本文中列出的各个步骤可以帮助未来的Rails 4.2开发人员解决缓存问题,因为我们已经耗尽了几个潜在途径来解决这个问题。

2

我有同样的问题,rake assets:clean做的伎俩。

相关问题