新手问题 部署服务器,字体文件 woff ttf 编译后上传到又拍云,出现 404 错误了!

stephen · 2014年03月20日 · 最后由 hozaka 回复于 2014年03月20日 · 5836 次阅读

部署服务器,字体文件 woff ttf 编译后上传到又拍云,出现 404 错误了! 路径是没错的,本地开发没问题! 我也清理锅缓存之类,还是不行。 大家有遇到这个情况吗?

如果你是放在 assets 下面编译的,字体文件名会带有时间戳

@hozaka 这是肯定的,而且文件名都不用自己写或处理的啊!

#2 楼 @stephen 字体你是在 css 里面用 @font-face 引入的?

@hozaka 是的,然后在字体放在 images 下

@font-face {
  font-family: 'VideoJS';
  src: image-url("font/vjs.eot");
  src: image-url("font/vjs.eot?#iefix") format('embedded-opentype'), image-url("font/vjs.woff") format('woff'), image-url("font/vjs.ttf") format('truetype');
  font-weight: normal;
  font-style: normal;
}

production 的config里加上 config.assets.precompile += %w( .woff .ttf ) 试试

@dddd1919 还是不行,这个不是只加 css 和 js 的吗

#6 楼 @stephen 任何文件都可以啊,对于其他文件只是打个戳

@dddd1919 放在 images 下的文件,就算不加,都会全部编译吧!而实际情况,我的对于 woff 等文件,他是有编译的

#8 楼 @stephen 看看 public/assets下面的文件,是戳不对吧,把文件放到 assets/fonts/下试试呢

@dddd1919 这些属于静态文件,所以 rails 只会在第一次编译一次就 OK,以后也不会再编译!所以戳和第一次的都一样的!我也对过服务器上面的,也没错!

直接使用第三方的 CDN 的字体路径就行了。又拍云...

@debugger 因为我是使用 video.js,现在打算就使用第三方的,改了 video.js 的 css 代码

这个现在用 rails-assets 可以自动解决

@aptx4869 如何解决?

#14 楼 @stephen 自己搜关键字 google 第一个

#10 楼 @stephen 是用nginx/Apache部署的么?我遇到的问题是 precompile 的戳和实际 get 的戳不一样

@dddd1919 哦哦!你是说在 nginx 配置了加!我看过!现在我都替换 css 解决了!

#2 楼 @stephen 如果是在 css 里面用 @font-face 的话,还是要自己处理,根本不会去找有时间戳的文件

#17 楼 @stephen 你看一下 precompile 之后的 css 文件,@font-face 那段你就知道了,引用的文件名没有时间戳,但是你 public/assets 下面的字体文件名都带上时间戳了,自然 404 not found

需要 登录 后方可回复, 如果你还没有账号请 注册新账号