我一直在经历一个相当奇怪的问题,我想看看是否有其他人经历过同样的事情,如果他们找到了解决方案。
对于给定的Web项目,我下载Font Awesome,包含CSS文件并确保正确加载所有文件(没有404)并且一切正常。我在项目上做了一些工作,然后用git commit / push完成。
麻烦的是,通常当我然后去另一台机器并执行git clone / pull所有在原始机器上运行良好的字体图标显示为盒子!控制台仍然没有报告404错误。一旦我重新下载Font Awesome并重新复制文件(它们就在那里,它们就不能工作),一切都能正常工作。
有没有人遇到过git损坏字体文件的问题?或者我的工作流程中还有其他东西被剔除了吗?非常感谢帮助和建议。
更新:问题已解决
快速解决方法是切换到CDN以加载文件。我最初不愿意这样做,因为我担心加载时间,但它更好,加上它减少了我服务器上的负载。
实际问题在于文件的行结尾。如果在Windows上开发(不幸的是我),那么git有时(通常)检查带有Windows风格的行结尾的文件并使用Linux风格提交它们。由于某种原因,这损坏了Font Awesome字体文件。
因此,更详细的修复(如果您坚持不使用CDN)是为了确保git保留Font Awesome文件的原始行结尾,并且在提交时不会更改它们/结帐。
答案 0 :(得分:2)
可能是由git的core.autocrlf功能引起的。
当选项为true时,这些二进制文件将被折叠。
答案 1 :(得分:0)
不确定为什么会从您的描述中发生这种情况,但许多精明的开发人员使用现代项目时会混合使用多个级联依赖项:
不是一个完整的答案,但这将为您提供所选库的CDN版本 - 并且 - 您需要的地方,您可以依赖的本地版本。
有一些JS库允许你回退本地的库副本,但这个问题涵盖了一些技术:
How to load local script files as fallback in cases where CDN are blocked/unavailable?