Twig- Include Template from other Directory

No, it's not possible using Twig_Loader_Filesystem, because it explicitly rejects template names which have .. inside. This can be verified into the definition of function validateName($name) inside file Twig/lib/Twig/Loader/Filesystem.php.

The only clean solution I can think of, if you need to access a template outside the path, is to create your own loader.

A workaround that does work, is defining a symbolic link inside the folder actually registered with Twig_Loader_Filesystem, pointing to the directory you want to access. Be careful with this method, point the link to a safe place.


You can add your path to the Twig loader (Filesystem loader) see last reply from Fabien (addPath method is what you need) https://github.com/symfony/symfony/issues/1912


You can add more paths by following : https://symfony.com/doc/3.4/templating/namespaced_paths.html

config.yml

# Twig Configuration
twig:
  paths:
    '%kernel.root_dir%/../src/AppBundle/Resources/views': AppBundle
    '%kernel.root_dir%/../web/': 'WEB_DIR_DIST' #your new custom path

someFile.html.twig

<script>{{ source('@WEB_DIR_DIST' ~ 'custom.js') }}</script>

Tags:

Twig