Вы должны придерживаться 3-уровневой архитектуры. Артефакты файловой системы должны быть логически связаны с тем, какую функцию они выполняют. Это приведет к развертыванию вместе с соответствующим уровнем.
Так, например, если у вас есть файлы XSLT, которые используются для преобразования данных внутри уровня приложения для использования на уровне приложения, сохраните эти файлы на уровне приложения. Но если у вас есть XSLT-файлы, которые используются для преобразования XML в HTML, это выглядит как логика представления, поэтому эти файлы должны находиться на уровне представления.
С точки зрения места кеширования, вы обычно кешируете как можно ближе к месту, где необходимы данные, чтобы максимизировать производительность. Конечно, могут быть и другие факторы, которые могут вступить в игру. например если необходимо периодически обновлять кэшированные данные и синхронизировать их между серверами, возможно, лучше использовать централизованный кеш.