Как правило, все ваши общедоступные ресурсы становятся публичными. Это веб-корень вашего приложения, и обычно вы устанавливаете DOCUMENT_ROOT вашего виртуального хоста apache в эту папку. Я не уверен, почему вы хотите хранить клиентские файлы (javascript, css и т. Д.) Вне webroot. Можете ли вы подробнее рассказать о структуре вашего каталога / приложения (возможно, намекая на местоположение файла, который вы хотите включить)?
Редактировать
То, что вы просите, должно быть возможным. Чтобы создать автономный модуль, я думаю, что вы просто переместите «api» в основную общую папку, и у модуля будет свой собственный загрузчик, или вам придется что-то делать в основном загрузчике на основе имени модуля («api» в этом случае). Вы должны изменить свои пути включения соответственно. В этом случае вам нужно добавить файл .htaccess для защиты каталогов кода.
../application/controllers
../public/api/controllers
../public/api/javascript/apimodule.js
../public/api/index.php
Вы также можете создать символическую ссылку в вашей общей папке, которая указывает на общую папку api. Итак,
../public/api > ../application/modules/api/public
Это позволило бы получить доступ к общедоступным, но защитить ваши файлы кода. Одна вещь, которую я часто делаю, это извлекает внешнюю Subversion в общую папку, которая просто указывает на общую папку модуля. Моя CMS выглядит так:
application/modules/cms
application/modules/cms/ui (public facing cms UI)
public/ui (svn:external pointing to application/modules/cms/ui)
HTH даст вам несколько идей.