Heroku应用程序找不到bower组件

Heroku app not finding bower components

本文关键字:组件 bower 找不到 应用程序 Heroku      更新时间:2023-09-26

我正在尝试将我的MEAN堆栈应用程序部署到Heroku。我过去部署过一些应用程序,其中一个是MEAN堆栈应用程序。不同的是,我没有在这个应用程序中使用webpack。

我的问题是,当我加载应用程序时,chrome控制台中出现了一堆错误,上面写着:

GET https://xxxxxxx-66928.herokuapp.com/bower_components/angular/angular.js 
GET https://fierce-escarpment-66928.herokuapp.com/bower_components/bootstrap/dist/css/bootstrap-theme.min.css

以下是我的index.html文件的一部分,我认为这是导致错误的原因:

<html ng-app="app">
 <head>
  <meta charset="utf-8">
  <title>XXX</title>
  <meta name="description" content="Car database">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- CSS -->
  <link rel="stylesheet" href="./style/style.css"/>
  <link rel="stylesheet" href="./bower_components/bootstrap/dist/css/bootstrap.min.css"/>
  <link rel="stylesheet" href="./bower_components/bootstrap/dist/css/bootstrap-theme.min.css"/>
  <!-- JS libraries -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script src="./bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
  <script src="./bower_components/angular/angular.js"></script>
  <script src="./bower_components/angular-route/angular-route.js"></script>
  <script src="./bower_components/filepicker-js/filepicker.js"></script>
  <script src="./bower_components/angular-filepicker/dist/angular_filepicker.js"></script>
  <!-- Angular files -->
  <script src="./app.js"></script>
  <script src="./controllers/addCarController.js"></script>
  <script src="./controllers/galleryController.js"></script>
  <script src="./controllers/detailController.js"></script>
  <script src="./controllers/userController.js"></script>
  <script src="./services/auth_service.js"></script>
  <script src="./services/error_service.js"></script>
  <script src="./services/car_service.js"></script>
</head> 

我把它添加到我的package.json文件中:

  "scripts": {
    "postinstall": "bower install"
   }

任何关于解决这些错误的帮助都将非常棒,谢谢!

好的,所以我发现了问题所在(在Heroku支持的帮助下)。当bower组件安装在Heroku上时,它正在安装到我的应用程序的根目录,而不是我的应用文件夹。我必须创建一个.bowerrc文件,并设置我希望它安装的目录路径,如下所示:

{
  "directory" : "app/bower_components"
}

使用heroku run bash命令,我能够看到文件结构,并看到bower_components不在我的应用程序中需要的位置。

尝试将package.json文件中的postinstall更改为:

"scripts": {
    "postinstall": "./node_modules/bower/bin/bower install"
}