Heroku应用程序没有找到凉亭组件

时间:2016-08-02 03:39:52

标签: javascript angularjs heroku bower mean-stack

我正在尝试将我的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"
   }

任何有关解决这些错误的帮助都会非常棒!谢谢!

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

{
  "directory" : "app/bower_components"
}

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