2015-04-29 2 views
3

У меня есть папка под названием «cdn» в моей/веб-папке, и я хотел бы предоставить публичный доступ к файлу javascript там (в основном, это букмарклет). Я не хочу использовать контроллер для работы с файлом, но пусть сервер будет обслуживать файл напрямую.Symfony 2 - Прямой доступ к государственному активу

Как я могу это сделать в Symfony 2? (PS я»также с помощью assetic)

Спасибо вам заранее, Romain

+1

Я думаю, вы должны добавить правило перезаписи в '.httaccess' –

+1

I подумайте, что оригинальный '.htaccess' Symfony позволяет это. Что происходит, когда вы вводите URL-адрес ресурса в браузере? Не найден маршрут или? –

+0

У меня есть об этом, но .htaccess недостаточно переносится (я, наверное, пользователь Nginx на рабочем сервере) –

ответ

3

Вы можете использовать другой каталог, определив корень общедоступного папки с помощью assets_base_urls в конфигурации:

приложения/Config/config.yml:

templating: 
    assets_base_urls: "%assets_base_urls%" 

Это будет используйте значение, определенное в конкретных контекстах:

app/config/config_dev.yml:

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

приложение/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 
+1

Отличное решение. Спасибо. –

0

Вы всегда можете использовать прямой URL. «Конечный актив», ака www.domain.com/path/relative/to/web/asset.img никогда не обслуживается приложением, а сервером.

Таким образом, независимо от того, какой веб-сервер вы используете, доступ к этому активу напрямую.

Смежные вопросы