我正在尝试这个:
<a href="remote.html" rel="facebox">text</a>
我的枝条中有这个
<a href='{{ path('likes_show_names') }}' rel='facebox'>
而不是在控制器中:
$view= $this->renderView('WallBundle:Statuses:likes_names.html.twig');
return new Response($view);
没有出现错误网络(chrome)正在显示代码获得200. Facebox打开弹出窗口但是connntent ..缺失......
当我检查response =&gt;预览显示:此请求无法预览
我做错了什么?
答案 0 :(得分:0)
我把Facebox放在我的web/
目录中。文件结构如下所示:
web/facebox
web/js/jquery.js
然后,在路由上,我设置了我的默认值和ajax控制的控制器:
vendor_some_bundle_homepage:
pattern: /
defaults: { _controller: VendorSomeBundle:Default:index }
vendor_some_bundle_test:
pattern: /test
defaults: { _controller: VendorSomeBundle:Default:ajax }
接下来,我为两条路线创建了一个简单的控制器:
<?php
namespace Vendor\SomeBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class DefaultController extends Controller
{
public function indexAction()
{
return $this->render('VendorSomeBundle:Default:indexTest.html.twig');
}
public function ajaxAction()
{
return $this->render('VendorSomeBundle:Default:ajaxTest.html.twig');
}
}
然后,我认为最适合您的文件,即打开facebox
链接的页面:
<!-- indexTest.html.twig -->
<html>
<head>
<link href="{{ asset('facebox/src/facebox.css') }}" media="screen" rel="stylesheet" type="text/css"/>
</head>
<body>
<a href="{{ path('vendor_some_bundle_test') }}" rel='facebox'>click me</a>
<script src="{{ asset('js/jquery.js') }}" type="text/javascript"></script>
<script src="{{ asset('facebox/src/facebox.js') }}" type="text/javascript"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('a[rel*=facebox]').facebox();
});
</script>
</body>
</html>
重要:您应该注意您的资产和路由。如果有错误,应将其写入app/log/dev.log
文件,或最后写入您的error.log
。
最后,创建将包含的视图:
{# ajaxTest.html.twig #}
This is <em>some</em> remote content
这个样本给了我以下结果:
注意:仍有一些资产错误(请参阅图片右侧的关闭按钮),因为我已快速安装了facebox。您的问题的关键是访问远程内容,在这里您可以找到一个示例来查找您的错误。