访问包控制器/服务等中的静态文件

时间:2014-09-04 10:37:49

标签: symfony

我是symfony2的新手。我陷入了小问题。 我的目录路径是这样的

项目

/app
/bin
/src
  /neil
    /mybundle
       /Controller  
       /DependencyInjection
       /EventListner
       /Helper
       /Resources
         /public
           /js
            /script.js
       /Services
       /Test
/vendor
/web

我想在我的控制器/服务中访问script.js的url(不在模板中)。我该怎么做。

编辑:我试过了

$fileLocator = $this->container->get('file_locator');
        $path = $fileLocator->locate('@neilmybundle/Resources/public/js/script.js');

它返回目录路径。 如果我使用此目录路径,如

$r = '<script type="text/javascript" src="'.$path.'"></script>';

        return new Response($r);

它不会提供文件。

2 个答案:

答案 0 :(得分:1)

在您的控制器/服务中,您可以注入内核(或从容器中获取内核)并使用locateResource()。请参阅:https://stackoverflow.com/a/7587106/4000591

答案 1 :(得分:0)

这会对您有所帮助:https://stackoverflow.com/a/16498845/1353837

我认为你应该在

之前执行app/console assets:install