У меня есть следующий код шаблона на моей домашней странице 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, обратите внимание, что нет ведущего/)?