Symfony рекомендует помещать ресурсы в веб-папку.

Они также комментируют использование метода актива. Зачем нужен метод активов? Это занимает больше символов, чем просто вставить ссылку.

Почему это:

<img src="{{ asset('img/social/facebook.png') }}" />

Лучше чем это:

<img src="/img/social/facebook.png" />

Я чувствую, что, должно быть, скучаю по некоторым причинам

5
Eric 25 Май 2017 в 00:09

2 ответа

Лучший ответ

Ваш главный каталог \ web

В вашем config.yml:

assets:
    packages:
        downloads:
            base_path: images/yesterday/answers/download/
        attachment:
            base_path: stack/post/answers/ 

В этом случае downloads и attachment являются вашими «разделами»

Вместо этого, чтобы написать этот код:

<img src="images/yesterday/answers/download/facebook.png" />
<img src="stack/post/answers/photo.jpeg" />

Ты можешь использовать:

<img src="{{ asset(facebook.png, 'downloads') }}" />
<img src="{{ asset(photo.jpeg, 'attachment') }}" />

Потому что у вас нет длинного пути в представлении, а также вы больше организовываете свой проект классифицируйте по разделам

Дополнительная информация здесь: http://symfony.com/doc/current/reference /configuration/framework.html#assets

12
Eric 25 Май 2017 в 22:06

Поскольку тег Twig asset запускает PHP-код за кулисами, он может изменить вывод. Например, у меня работает система, в которой исходные файлы в каталоге web / assets / js / (и img / или css /) переименовываются в зависимости от содержимого - это означает, что когда они обслуживаются веб-сервером, они могут быть помечены как «кешировать этот файл навсегда», и поэтому, надеюсь, читателю веб-сайта не придется загружать тот же файл снова, потому что он впервые отправил файл.

Тегу ресурса в этом случае присваивается исходное имя файла, но он просто используется для поиска в индексе уникально переименованного файла, который никогда не нужно будет изменять, и поэтому его можно пометить как кэшируемый в течение потенциально лет.

4
Alister Bulman 28 Май 2017 в 21:07