我在Symfony中加载字体时感到很困难。这里是什么错误:在Symfony中找不到字体文件的路由
情况
我使用Symfony和我想的Metro UI的CSS文件添加到包。这些文件存在于Resources/public/lib/metro-ui文件夹中。
Resources/public/lib/metro-ui
- css
- fonts
- js
- min
我有一个树枝文件这样的布局:
{% stylesheets
'bundles/manager/lib/metro-ui/css/metro-bootstrap.css'
%}
的Metro UI的引导文件包含以下字体:
@font-face {
font-family: 'metroSysIcons';
src: url('../fonts/metroSysIcons.woff') format('woff'),
url('../fonts/metroSysIcons.ttf') format('truetype'),
url('../fonts/metroSysIcons.svg#metroSysIcons') format('svg');
font-weight: normal;
font-style: normal;
}
我用Assetic的命令资产:install安装资产放入我的网页文件夹。实际上资产已被复制,甚至是字体。
问题
当我去我的CSS在网页加载,但我的字体都没有。当我在开发者控制台看(在Chrome F12)我可以看到,装在404请求的URL的字体结果是:
http://sub.domain.lc/fonts/metroSysIcons.woff
当我输入这个地址到我的浏览器我得到如下:
No route found for "GET /fonts/metroSysIcons.woff"
404 Not Found - NotFoundHttpException
1 linked Exception:
ResourceNotFoundException »
对于每一个其他资产这只是工作:
// This loads the correct bootstrap file:
http://sub.domain.lc/css/afd9510_metro-bootstrap_1.css
所以基本上所有的资产可以这样找到的,但不是我的字体文件(WOFF和TFF两者)。
的问题
我的问题提出了多个问题:
- 为什么Symfony的试图找到通过app.php我的字体,使用路线?
- 是否通过路线找到所有资产?
- 如果是这样:为什么字体文件的路由不能被解析?
- 我怎样才能让我的字体文件加载?
[编辑]
我尝试使用CSS重写过滤器是这样的:
{% stylesheets filter='cssrewrite'
'bundles/manager/lib/metro-ui/css/metro-bootstrap.css'
%}
我仍然得到一个404,但现在的浏览器正试图从找回我的字体这个位置:
http://sub.domain.lc/bundles/manager/lib/metro-ui/fonts/metroSysIcons.woff
我得到相同的“找不到路由”GET /“.....”erro r消息。
检查'web'文件夹结构,并检查是否'网/包/经理/ lib目录/地铁-ui/fonts/metroSysIcons.woff'是否存在,或者是否存在差异 – Jean
它确实存在并且没有区别。 –
你正在运行'assets:install'命令吗? –