当前位置: 首页 > 面试题库 >

如何从Compass生成的Sprite图像文件名中删除哈希?

怀德馨
2023-03-14
问题内容

指南针使用chunky_png渲染精灵。它将哈希添加到文件的末尾以强制缓存下载新的图像精灵。有没有办法关闭此缓存关闭?


问题答案:

不幸的是,该asset_cache_buster :none选项不会禁用将哈希添加到文件名的末尾。

就像我几天前用法语写的一样,Compass无法禁用缓存哈希无效,但是我提出了一个解决方案]。
在您的配置文件(例如config.rb)中,添加以下几行:

# Make a copy of sprites with a name that has no uniqueness of the hash.
on_sprite_saved do |filename|
  if File.exists?(filename)
    FileUtils.cp filename, filename.gsub(%r{-s[a-z0-9]{10}\.png$}, '.png')
  end
end

# Replace in stylesheets generated references to sprites
# by their counterparts without the hash uniqueness.
on_stylesheet_saved do |filename|
  if File.exists?(filename)
    css = File.read filename
    File.open(filename, 'w+') do |f|
      f << css.gsub(%r{-s[a-z0-9]{10}\.png}, '.png')
    end
  end
end

现在,用于compass clean删除生成的文件并使用重新启动编译compass compile
您获取例如一个images/icons-scb1e5456d5.png文件
一个images/icons.png文件。在样式表中,所有对精灵的引用现在都指向没有哈希的版本。

确保保留文件中提供的哈希值,以优化Compass的编译时间。



 类似资料:
  • > 我可以从存储库下载图像,但希望看到生成它们的方法。 我喜欢保存快照的想法,但是一旦我完成了,最好有一个结构化的格式来检查所做的事情。

  • 我试图更新包含文件(图像)的表单,并删除旧图像。更新工作正常,但旧图像无法删除。我尝试了这个代码,但图像没有被删除。请帮帮我。提前谢谢。

  • 问题内容: 如何编写此代码?我已经拥有了,我需要通过单击按钮将相应的md5哈希发送到服务器。 问题答案: 您可以使用crypto-js。 我也建议使用SHA256,而不是MD5。 要通过NPM安装crypto-js: 或者,您可以使用CDN并引用JS文件。 然后,要显示MD5和SHA256哈希,可以执行以下操作: 此处的工作示例JSFiddle 还有其他一些JS函数会生成哈希,如下所述。 http

  • 问题内容: 我正在使用react- router进行路由,并使用hashHistory选项,以便可以从浏览器刷新页面或指定现有路由之一的url并到达正确的页面。它工作正常,但我在URL中看到的哈希是这样的: http:// localhost /#/ login?_k = ya6z6i 这是我的路由配置: 问题答案: 您是否尝试过browserHistory选项?您还可以从浏览器刷新页面,或指定现

  • 我有以下图片: 当我试图移除其中一个时,我得到: 我怎样才能移除它们?为什么会有这样的冲突?

  • 我正在OS X 10.8.4(Mountain Lion)下的Vagrant下运行Docker,每当我试图删除一个保存的图像时,我会得到一个错误: 根据帮助,正确的语法是,我不知道该如何解释。 如何删除图像?   有趣的是,当我运行时,根本没有容器显示。运行将显示四(4)个图像和一(1)个图像。