Это можно решить, установив ...
grails.mime.file.extensions = false
... в Config.groovy.
Похоже, что Grails пытается создать магию MIME за сценой, основываясь на суффиксе имени файла.
Обновлено: Некоторая дополнительная информация от Grails JIRA .
Это неправильный код в UrlMappingsFilter.java:
.
if(WebUtils.areFileExtensionsEnabled()) {
String format = WebUtils.getFormatFromURI(uri);
if(format!=null) {
MimeType[] configuredMimes = MimeType.getConfiguredMimeTypes();
// only remove the file extension if its one of the configured mimes in Config.groovy
for (MimeType configuredMime : configuredMimes) {
if (configuredMime.getExtension().equals(format)) {
request.setAttribute(GrailsApplicationAttributes.CONTENT_FORMAT, format);
uri = uri.substring(0, (uri.length() - format.length() - 1));
break;
}
}
}
}
WebUtils.areFileExtensionsEnabled () возвращает значение параметра «grails.mime.file.extensions», настроенного в Config.groovy.