Symfony 2 - 直接访问 public 资产

Symfony 2 - Access public asset directly

我的 /web 文件夹中有一个名为 "cdn" 的文件夹,我想授予 public 访问其中 javascript 文件的权限(基本上,它是一个小书签) .我不想使用控制器来提供文件,而是让服务器直接提供文件。

我怎么能在 Symfony 2 中做到这一点? (PS 我也在用 assetic)

提前致谢, 罗曼

您可以随时使用直接 URL。 "end-asset" aka www.domain.com/path/relative/to/web/asset.img 从不由应用程序提供,而是由服务器提供。

因此,无论您使用哪个网络服务器,都可以直接访问该资产。

您可以通过在配置中使用 assets_base_urls 定义 public 文件夹的根目录来使用不同的目录:

app/config/config.yml:

templating:
    assets_base_urls: "%assets_base_urls%"

这将使用在特定上下文中定义的值:

app/config/config_dev.yml:

parameters:
    assets_base_urls: "http://localhost/.../cdn/"

app/config/config_prod.yml:

parameters:
    assets_base_urls: "http://cdn.example.com/"

这个 URL 应该指向您服务器上的一个目录,例如/var/www/site/public/.

您必须 dump the assets 到两种上下文中的相应目录才能将文件放到正确的目录中:

# dev
php app/console assetic:dump --env=dev .../cdn --no-debug
# prod
php app/console assetic:dump --env=prod `/var/www/site/public/` --no-debug