我把 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
文件中,或者最后写在你的 apacheerror.log
中。
最后,创建将包含的视图:
{# ajaxTest.html.twig #}
This is <em>some</em> remote content
这个样本给了我以下结果:
注意:仍然存在一些资产错误(见图片右侧的关闭按钮),因为我快速安装了facebox。您的问题的重点是对远程内容的访问,在这里您可以找到一个示例来查找错误。