Как подключить js/css файлы в модуле без применения assets (ассет менеджера)?
Есть отдельный модуль documentation. В представлении я хочу подключить css и js файлы напрямую, из любой папки этого модуля. Например они могут лежать в той же папке, что и само представление, а могу положить в папку public/css/public/js. В представлении я хочу прописать либо <link src...> для подключения напрямую. Но в браузере отображается ошибка 404 Not found.
В данном случае я принципиально не хочу использовать Asset, который наследуется от BaseAsset и прописывать там. Мне важно именно "чистое" подключение файлов.
Также пробовала $this->registerCssFile и $this->registerJsFile, но они тоже выдают 404 со всевозможными вариантами путей
Ответы (1 шт):
На стандартный файл .htaccess Yii2 можно в начале дописать:
RewriteCond %{REQUEST_URI} ^\/modules\/.*\/(.*\.css|.*\.js|.*\.png|.*\.jpg|.*\.jpeg)
RewriteRule ^modules/(.*)$ modules/$1 [L]
Или такие строчки:
RewriteCond %{REQUEST_URI} ^/modules/.*
RewriteRule ^modules/(.*)$ modules/$1 [L]
В первом случае мы явно перечисляем все типы файлов, а во втором это не учитываем. Судя по стандартной маршрутизации:
RewriteCond %{REQUEST_URI} ^/.*
RewriteRule ^(.*)$ web/$1 [L]
RewriteCond %{REQUEST_URI} !^/web/
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ web/index.php
Как раз все, что не начинается с /web/ будет переадресовано на web/index.php.