最近我开始研究Heroku Java应用程序。
一切都很顺利,直到我将服务器从登台转移到生产......(但可能没有关系)
应用程序使用以下buildpack: Java的 的NodeJS 亭子
凉亭仅用于安装Gentelella
问题是现在它没有从它们加载任何东西。
它似乎已正确安装,如果我bash
到服务器,我可以看到文件。
如果我通过浏览器访问未通过Bower安装的 /resources/style.css ,它可以正常工作,我可以看到该文件。 如果我去 /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
我已经清理了我的缓存,重新启动了dynos和其他愚蠢的“解决方案”。
还有什么想法吗?
更新
发现服务文件的实际位置是:target / tomcat ./webapps/extended / resources
将所有bower_components复制到此文件夹作为临时解决方案,现在工作正常,但我想了解为什么会发生这种情况。
所以我认为我需要在Heroku设置或其他地方将其设置为正确的路径?
答案 0 :(得分:0)
问题与buildpacks的顺序有关。
当Java buildpack运行时,它会将Web资源复制到Tomcat公共目录。 发生的事情是Java buildpack首先运行,因此没有将bower安装复制到正确的目录。
只需更改顺序,使Java buildpack成为最后一个运行修复它的程序。