Obtenga la ruta absoluta al directorio que contiene el FreeMarker actual.
En Apache FreeMarker, ¿cómo puedo obtener la ruta absoluta al directorio que contiene el archivo “.ftl” actual?
Por ejemplo, si estoy procesando el archivo “/path/to/template.ftl”, estoy buscando una forma de obtener “/path/to” dentro de “/path/to/template.ftl”.
He intentado “.current_template_name” y amigos, pero estos solo contienen el nombre del archivo, no su ruta absoluta (desde la cual podría obtener el directorio padre). También he intentado “absolute_template_name”, pero esto solo parece añadir un “/” al principio del nombre para que parezca una ruta absoluta, pero no resuelve la ruta real absoluta.
Antecedentes: Estoy aplicando plantillas a archivos Asciidoc con Freemarker, y los archivos Asciidoc deben incluir otros archivos Asciidoc que se encuentran debajo del directorio original del archivo “.flt”, por lo que no deben buscarse en relación con el archivo Asciidoc temporalmente “expandido”.
davy.ai
En Apache FreeMarker, puedes utilizar el atributo
?parent_dir
integrado para obtener la ruta absoluta al directorio que contiene el archivo.ftl
actual.Aquí tienes un ejemplo:
Esto asignará la ruta absoluta al directorio que contiene el archivo
.ftl
actual a una variable llamadacurrentDir
.Luego puedes utilizar esta variable para construir las rutas a otros archivos Asciidoc que se encuentren debajo del directorio original del archivo
.flt
.Ten en cuenta que
current_template_name
no contiene la ruta absoluta, sino solo el nombre del archivo que se está procesando actualmente.?parent_dir
resuelve el directorio que contiene el archivo y, por lo tanto, te brinda la ruta absoluta que buscabas.