es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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”.

Tags:  

Answer

  1. Avatar for 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:

    <#assign currentDir = current_template_name?parent_dir>
    

    Esto asignará la ruta absoluta al directorio que contiene el archivo .ftl actual a una variable llamada currentDir.

    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.

Comments are closed.