Symfony 2静态资产授权(防火墙后面的.js)

cal*_*die 4 security authorization symfony assetic

保护防火墙后面的静态资产(javascript和css)的过程是什么?我有一个管理部分,大量使用javascript.我真的不想公开代码.

我目前使用assetic将所有javascript编译为/web/admin/js/xyz.js中的文件

有一种简单的方法可以做到这一点,我忽略了吗?

Car*_*dos 5

您可以使用控制器来提供静态文件并保护该控制器.就像是:

/** 
 * Serves static javascript file. 
 * We have configured /secure to be secured by some firewall
 *
 * @Route("/secure/xyz.js", name="static_xyz")
 */
public function staticXyzAction()
{   

    $headers = array(
        'Content-Type' => 'text/javascript',
    );  

    return new Response(file_get_contents($this->get('kernel')
        ->getRootDir().'../web/admin/js/xyz.js'), 200, $headers);
}   
Run Code Online (Sandbox Code Playgroud)

这只是您提供的数据的一个示例.显然,在您的最终代码中,所服务的文件应位于某个目录中,该目录不能由Web服务器直接访问.

这种方法的明显缺点是性能.服务静态文件的PHP比Web服务器慢得多,但根据您的负载,这可能不是问题.