Symfony 4 / Как правильно обновить клиентскую часть активов ветки с помощью Ajax независимо от текущего URL-адреса?

У меня есть следующий код шаблона на моей домашней странице example.com

{% block content %}

  <img id='imgID' src = {{ asset(/asset/img.png) }}>

{% endblock %}

Это загружается правильно

Теперь я перехожу к example.com/foo, щелкая ссылку. Эта страница содержит запрос Ajax, который возвращает новый src для моего <img> в обещании:

$('#imgID').attr('src', '/asset/${newimg}')

Изображение обновляется правильно, НО теперь, если я обновляю страницу браузера, нажимая кнопку обновления браузера, я получаю 404 на моем изображении

Ошибка Failed to load resource: the server responded with a status of 404 (Not Found) http://example.com/foo/asset/newimg.png'

это должен быть http://example.com/asset/newimg.png'

та же ошибка, если я загружаю вызов ajax из чего-либо, кроме example.com

Я не понимаю, почему, я использую абсолютный путь в моем обратном вызове Ajax. Функция twig {{ asset() }} не загружается правильно?

Каков правильный способ обновления пути к активу ветки с помощью запроса ajax с любого URL-адреса без использования серверной части диспетчера активов? Можно как-то указать истинный абсолютный путь?

Должен ли я использовать composer require symfony/asset, как показано ниже, и, следовательно, выполнять вызов Ajax каждый раз, когда я хочу обновить ресурс с помощью Ajax? Или я могу оставить его на стороне клиента? все кажется слишком сложным и полным беспорядком

код сервера:

$package = new Package(new EmptyVersionStrategy());
$img = $package->getUrl('/asset/newimg.png');

не следует ли всегда ссылаться на активы с относительным путем? (например, asset/newimg.png, обратите внимание, что нет ведущего /)?

Jovan Perovic 16.08.2018 14:40

если вы имеете в виду серверную часть, без которой он работает, вывод сервера с /

Sam 16.08.2018 14:46
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
147
0

Другие вопросы по теме