Если вы не используете Asset-Pipeline можно сопоставить статические ресурсы для URL-адресов, выполнив шаги, описанные в Grails Documentation. Однако ваш вопрос заключается в том, как сопоставить один ресурс с одним URL-адресом с Asset-Pipeline plugin.
Burt Beckwith представил информацию о Grails forum несколько лет назад о роли Grail в обслуживании статических ресурсов.
Grails не обслуживает статические ресурсы, это делает контейнер. Таким образом, нет возможности напрямую настраивать сопоставление - вам нужно обслуживать его через контроллер или настраивать прокси-сервер, как предлагает Эрик.
Burt
Этот ответ может быть неудовлетворителен. Но если вы должны обслуживать статический ресурс и абсолютно не хотите использовать контроллер или прокси, вы можете попробовать следующее.
Создайте представление под названием image.gsp. Представление будет содержать только тег ресурса. Используя свои примеры выше,
<asset:image src="t1.png"/>
Затем нужно настроить URL отображения, чтобы указать на image.gsp
странице.
class UrlMappings {
static mappings = {
...
"/t1.png" (view: "image")
...
}
}
Я признаю, что это не тот точный метод, который вы надеялись использовать. Но я думаю, что понимание роли Grails против контейнера, на котором работает Grails, поможет сообщить о правильном обслуживании ресурса для пользователя.
Я знаю, это может показаться несвязанным, но если вы хотите создать страницу, в которой перечислены содержимое каталога, ознакомьтесь с этим post by CodePanda. Его код можно использовать в качестве шаблона для создания контроллера для обслуживания одного файла, и он объясняет, как обновлять представление, контроллер и groovy.config.
Это интересный подход, но, похоже, это только результат 404s (я также пробовал различные другие перестановки с использованием AssetController без успеха). У вас есть конкретный рабочий пример? –
На самом деле нет, это была просто идея. Я коротко рассмотрел «AssetController» мысль, которая могла бы сработать ... Может быть, взгляд в «AssetTagLib» поможет вам понять «AssetPlugin», и вы можете написать собственный контроллер, к которому вы хотите. – YAT