Kan*_*ski 1 symfony twig silex
我正在尝试显示我的投资组合页面,这很好用:
// Works
$app->get('/works', function () use ($app) {
try {
$yamlFile = file_get_contents(__DIR__.'/../data/work.web.yml');
$works = Yaml::parse($yamlFile);
return $app['twig']->render('works.twig',array(
'pageTitle' => 'Works',
'works' => $works,
));
} catch (Exception $e) {
return $e;
}
})->bind('works');
Run Code Online (Sandbox Code Playgroud)
但是在向路由器添加参数时
// Works
$app->get('/works/{folio}', function ($folio) use ($app) {
try {
$yamlFile = file_get_contents(__DIR__.'/../data/work.'.$folio.'.yml');
$works = Yaml::parse($yamlFile);
return $app['twig']->render('works.twig',array(
'pageTitle' => 'Sample '. $folio,
'works' => $works,
));
} catch (Exception $e) {
return $e;
}
});
Run Code Online (Sandbox Code Playgroud)
模板内部的路径混乱,例如:现在图像路径变为:web/works/js/jquery.js404(未找到),而web/js/jquery.js图像变为:web/works/galeria相反web/galeria(如第一个示例中所示).
如何修复网址?
更新:如果我改变$app->get('/{folio}', function ($folio) use ($app) {,路径再次正常,但为什么它不能正确keeppath'工作/ {folio}'?
从Silex cookbook中,您可以添加过滤器以获取公共资产的正确URL,无论您在网站上的哪个路径.
在您注册了所有正在使用的服务提供商后添加此项.
$app['twig'] = $app->share($app->extend('twig', function($twig, $app) {
$twig->addFunction(new \Twig_SimpleFunction('asset', function ($asset) use ($app) {
return sprintf('%s/%s',
$app['request']->getBasePath(),
ltrim($asset, '/')
);
}));
return $twig;
}));
Run Code Online (Sandbox Code Playgroud)
上面的例子与食谱上的例子不同.
现在您可以使用它:
{{ asset('js/jquery.js') }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1242 次 |
| 最近记录: |