Nano Hash - криптовалюты, майнинг, программирование

Как получить доступ к веб-папке в Twig в Symfony?

У меня есть шаблон Twig в моем комплекте, и я хочу получить доступ к веб-папке в моем приложении Symfony, где находится мое изображение, которое я хочу показать. Веб-папка находится в основном каталоге. Ссылка на мое изображение идет из моей базы данных:

uploads/documents/image1.jpg

В моем шаблоне Twig я должен определить две переменные:

<img src="/{{ var.uploadDir }}{{ var.path }}" width="300px" height="150px">

но изображение не отображается. Пишет, что URL не найден. Можно ли получить доступ к веб-пути без использования «активов»?

20.12.2014

  • Использовать ресурс (uploads/documents/image1.jpg) 20.12.2014
  • Я хочу сделать его переменным, чтобы мое приложение не могло использовать фиксированные имена для изображения. 20.12.2014
  • Я не уверен, что точно понял, чего вы хотите, но если вы хотите иметь дело только с переменными, вы можете поместить uploads/documents/image1.jpg в файл параметров и вызвать его в своей ветке. Но я не думаю, что это действительно хорошая идея, потому что что ты собираешься делать с изображениями, сделанными вручную? 20.12.2014
  • Изображения, которые я хочу показать, взяты из моей базы данных. Загрузки/documents/image1.jpg были только примером, полностью взятым из моей базы данных. Но он не отображается на моем сайте, потому что он говорит, что путь неверен! 20.12.2014

Ответы:


1

Вы пробовали передавать переменные через функцию asset?

<img src="{{ asset(var.uploadDir ~ var.path) }}" width="300px" height="150px">

Теоретически это даст тот же результат, поэтому вам нужно изучить несколько вещей:

  1. Вы должны сделать папку web/ своим docroot в настройках Apache
  2. Убедитесь, что файл существует по этому пути (например, должен существовать web/uploads/documents/image1.jpg)
  3. Убедитесь, что объединение var.uploadDir и var.path действительно дает допустимый путь. Возможно, вы забыли где-то в своем коде, что на самом деле у вас нет косой черты в конце или перед каждой соответствующей переменной. Тогда var.uploadDir ~ var.path может дать /uploadsdocuments/image1.jpg, что явно неверно.
20.12.2014
  • Ваш первый пункт превосходен, и я думаю, что многие люди не знают о возможности конкатенации строк внутри функции Twig asset(). Документация Symfony всегда имеет здесь жестко закодированные значения, а сам оператор ~ не обсуждается. Если исходному автору нужна ссылка, вот ссылка на документацию Twig, объясняющую это: twig.sensiolabs.org/doc/templates.html#other-operators 20.12.2014
  • @JasonRoman Да, я настоятельно рекомендую внимательно прочитать документацию Twig и Doctrine — они являются неотъемлемой частью Symfony, и важно знать их полный набор функций. 21.12.2014
  • СПАСИБО! Не знал, что я могу поместить переменные в функцию актива и связать ее только с ~. ОТЛИЧНЫЙ! 21.12.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..