Heroku 404'ing зависимости статических файлов
Недавно я начал работать над Java-приложением Heroku.
Все шло хорошо, пока я не перевел сервер из промежуточного состояния в производство... (но это может быть не связано)
В приложениях используются следующие пакеты сборки: Java Nodejs Bower
Беседка используется только для установки Gentelella
Проблема в том, что теперь он ничего не загружает с них. Вроде правильно установлен, и если я bash
на сервер я вижу файлы.
Если я захожу через браузер в /resources/style.css, который не устанавливается через Bower, он работает нормально, и я вижу файл. Если я зайду, например, на /resources/bower_components/gentelella/vendors/jquery/dist/jquery.min.js, это даст мне 404
Если я захожу на сервер, я вижу файл в правильном месте, и у него, похоже, есть необходимые разрешения.
~ / web / resources / bower_components / gentelella / vendors / jquery / dist $ ls -l всего 296
-rw------- 1 u32669 dyno 85658 Jan 25 2017 jquery.js -rw------- 1 u32669 dyno 85578 Jan 25 2017 jquery.min.js -rw------- 1 u32669 dyno 129572 Jan 25 2017 jquery.min.map
Я почистил кеш, перезапустил динамов и другие глупые "решения".
Любая другая идея, что еще это может быть?
ОБНОВИТЬ
Выяснилось, что фактическое место, где обслуживаются файлы: target / tomcat. / Webapps / extended / resources
Скопировал все bower_components в эту папку как временное решение, и теперь оно работает нормально, но я хочу понять, почему это происходит.
Поэтому я думаю, что мне нужно установить это как правильный путь где-то еще в настройках Heroku или где-то еще?
1 ответ
Проблема была связана с порядком сборки пакетов.
При запуске пакета сборки Java он копирует веб-ресурсы в общедоступный каталог Tomcat. То, что происходило, было то, что Java buildpack был запущен первым, поэтому установка bower никогда не копировалась в правильный каталог.
Просто изменив порядок, чтобы сделать Java buildpack последним, чтобы запустить исправил его.