title: MEAN stack installation gives 304 and 404s
body: <p>I am getting these 304 and 404s when I go to <code>http://myipaddress:3000</code> after I tried to install the <a href="http://www.mean.io/" rel="nofollow">MEAN stack</a></p>
  
  <pre><code>$ node server
  Express app started on port 3000
  GET / 304 973ms
  GET /lib/bootstrap/js/bootstrap.js 404 371ms
  GET /lib/bootstrap/css/bootstrap.css 404 489ms
  GET /lib/angular/angular.js 404 371ms
  GET /lib/jquery/jquery.js 404 447ms
  GET /lib/bootstrap/css/bootstrap-responsive.css 404 453ms
  GET /lib/angular-cookies/angular-cookies.js 404 75ms
  GET /lib/angular-resource/angular-resource.js 404 217ms
  GET /lib/angular-ui-utils/modules/route.js 404 217ms
  GET /lib/angular-bootstrap/ui-bootstrap-tpls.js 404 221ms
  </code></pre>
  
  <p><strong>All these lib/* files are found in public/lib/*.</strong></p>
  
  <p>I am on Ubuntu and did these commands:</p>
  
  <pre><code>1. wget https://codeload.github.com/linnovate/mean/legacy.tar.gz/master -O mean
  
  2. tar -zxvf mean
  
  3. npm install
  
  4. sudo npm install -g bower
  
  5. bower install
  </code></pre>
  
  <p>where steps 4 and 5 are from <a href="https://github.com/linnovate/mean/issues/35#issuecomment-22376565" rel="nofollow">this comment</a>. since I was getting the errors even after step 3.</p>
  
  <p>Since people also mentioned a <code>.bowerrc</code>, <strong>which I did NOT find anywhere</strong>, I created one in the root of the mean directory.</p>
  
  <pre><code>{
    "directory": "public/lib",
    "json": "bower.json"
  }
  </code></pre>
  
  <p>Here is the output of my <code>npm list</code>.</p>
  
  <pre><code>mean@1.0.0 /path/to/linnovate-mean-612b014
  ├── async@0.2.9
  ├── connect-flash@0.1.1
  ├─┬ connect-mongo@0.3.3
  │ └─┬ mongodb@1.2.14
  │   └── bson@0.1.8
  ├─┬ express@3.4.0
  │ ├── buffer-crc32@0.2.1
  │ ├─┬ commander@1.2.0
  │ │ └── keypress@0.1.0
  │ ├─┬ connect@2.9.0
  │ │ ├── bytes@0.2.0
  │ │ ├─┬ multiparty@2.1.8
  │ │ │ ├── readable-stream@1.0.17
  │ │ │ └── stream-counter@0.1.0
  │ │ ├── pause@0.0.1
  │ │ ├── qs@0.6.5
  │ │ └── uid2@0.0.2
  │ ├── cookie@0.1.0
  │ ├── cookie-signature@1.0.1
  │ ├── debug@0.7.2
  │ ├── fresh@0.2.0
  │ ├── methods@0.0.1
  │ ├── mkdirp@0.3.5
  │ ├── range-parser@0.0.4
  │ └─┬ send@0.1.4
  │   └── mime@1.2.11
  ├─┬ forever@0.10.8
  │ ├─┬ cliff@0.1.8
  │ │ ├── eyes@0.1.8
  │ │ └─┬ winston@0.6.2
  │ │   ├── async@0.1.22
  │ │   ├── cycle@1.0.2
  │ │   ├── pkginfo@0.2.3
  │ │   ├── request@2.9.203
  │ │   └── stack-trace@0.0.7
  │ ├── colors@0.6.0-1
  │ ├─┬ flatiron@0.3.5
  │ │ ├─┬ broadway@0.2.7
  │ │ │ ├── eventemitter2@0.4.11
  │ │ │ └─┬ winston@0.6.2
  │ │ │   ├── async@0.1.22
  │ │ │   ├── cycle@1.0.2
  │ │ │   ├── eyes@0.1.8
  │ │ │   ├── pkginfo@0.2.3
  │ │ │   ├── request@2.9.203
  │ │ │   └── stack-trace@0.0.7
  │ │ ├── director@1.1.10
  │ │ ├─┬ optimist@0.3.5
  │ │ │ └── wordwrap@0.0.2
  │ │ └─┬ prompt@0.2.9
  │ │   ├─┬ read@1.0.5
  │ │   │ └── mute-stream@0.0.4
  │ │   ├── revalidator@0.1.5
  │ │   └─┬ winston@0.6.2
  │ │     ├── async@0.1.22
  │ │     ├── cycle@1.0.2
  │ │     ├── eyes@0.1.8
  │ │     ├── pkginfo@0.2.3
  │ │     ├── request@2.9.203
  │ │     └── stack-trace@0.0.7
  │ ├─┬ forever-monitor@1.2.2
  │ │ ├─┬ broadway@0.2.7
  │ │ │ ├── eventemitter2@0.4.11
  │ │ │ └─┬ winston@0.6.2
  │ │ │   ├── async@0.1.22
  │ │ │   ├── cycle@1.0.2
  │ │ │   ├── eyes@0.1.8
  │ │ │   ├── pkginfo@0.2.3
  │ │ │   ├── request@2.9.203
  │ │ │   └── stack-trace@0.0.7
  │ │ ├─┬ minimatch@0.0.5
  │ │ │ └── lru-cache@1.0.6
  │ │ ├─┬ ps-tree@0.0.3
  │ │ │ └─┬ event-stream@0.5.3
  │ │ │   └─┬ optimist@0.2.8
  │ │ │     └── wordwrap@0.0.2
  │ │ └── watch@0.5.1
  │ ├─┬ nconf@0.6.7
  │ │ ├── async@0.1.22
  │ │ ├── ini@1.1.0
  │ │ ├─┬ optimist@0.3.7
  │ │ │ └── wordwrap@0.0.2
  │ │ └── pkginfo@0.2.3
  │ ├─┬ nssocket@0.5.1
  │ │ ├── eventemitter2@0.4.13
  │ │ └── lazy@1.0.11
  │ ├─┬ optimist@0.4.0
  │ │ └── wordwrap@0.0.2
  │ ├── pkginfo@0.3.0
  │ ├── timespan@2.0.1
  │ ├─┬ utile@0.1.7
  │ │ ├── async@0.1.22
  │ │ ├── deep-equal@0.0.0
  │ │ ├── i@0.3.2
  │ │ ├── mkdirp@0.3.5
  │ │ ├── ncp@0.2.7
  │ │ └── rimraf@1.0.9
  │ ├── watch@0.7.0
  │ └─┬ winston@0.7.1
  │   ├── cycle@1.0.2
  │   ├── eyes@0.1.8
  │   ├─┬ request@2.16.6
  │   │ ├── aws-sign@0.2.0
  │   │ ├── cookie-jar@0.2.0
  │   │ ├── forever-agent@0.2.0
  │   │ ├─┬ form-data@0.0.10
  │   │ │ └─┬ combined-stream@0.0.4
  │   │ │   └── delayed-stream@0.0.5
  │   │ ├─┬ hawk@0.10.2
  │   │ │ ├── boom@0.3.8
  │   │ │ ├── cryptiles@0.1.3
  │   │ │ ├── hoek@0.7.6
  │   │ │ └── sntp@0.1.4
  │   │ ├── json-stringify-safe@3.0.0
  │   │ ├── mime@1.2.11
  │   │ ├── node-uuid@1.4.1
  │   │ ├── oauth-sign@0.2.0
  │   │ ├── qs@0.5.6
  │   │ └── tunnel-agent@0.2.0
  │   └── stack-trace@0.0.7
  ├─┬ grunt@0.4.1
  │ ├── async@0.1.22
  │ ├── coffee-script@1.3.3
  │ ├── colors@0.6.2
  │ ├── dateformat@1.0.2-1.2.3
  │ ├── eventemitter2@0.4.13
  │ ├─┬ findup-sync@0.1.2
  │ │ └── lodash@1.0.1
  │ ├─┬ glob@3.1.21
  │ │ ├── graceful-fs@1.2.3
  │ │ └── inherits@1.0.0
  │ ├── hooker@0.2.3
  │ ├── iconv-lite@0.2.11
  │ ├─┬ js-yaml@2.0.5
  │ │ ├─┬ argparse@0.1.15
  │ │ │ ├── underscore@1.4.4
  │ │ │ └── underscore.string@2.3.3
  │ │ └── esprima@1.0.4
  │ ├── lodash@0.9.2
  │ ├─┬ minimatch@0.2.12
  │ │ ├── lru-cache@2.3.1
  │ │ └── sigmund@1.0.0
  │ ├─┬ nopt@1.0.10
  │ │ └── abbrev@1.0.4
  │ ├─┬ rimraf@2.0.3
  │ │ └── graceful-fs@1.1.14
  │ ├── underscore.string@2.2.1
  │ └── which@1.0.5
  ├─┬ grunt-bower-task@0.3.2
  │ ├── async@0.1.22
  │ ├─┬ bower@1.2.6
  │ │ ├── abbrev@1.0.4
  │ │ ├── archy@0.0.2
  │ │ ├─┬ bower-config@0.5.0
  │ │ │ └─┬ optimist@0.6.0
  │ │ │   ├── minimist@0.0.5
  │ │ │   └── wordwrap@0.0.2
  │ │ ├── bower-endpoint-parser@0.2.1
  │ │ ├─┬ bower-json@0.4.0
  │ │ │ ├── deep-extend@0.2.6
  │ │ │ └── intersect@0.0.3
  │ │ ├── bower-logger@0.2.1
  │ │ ├─┬ bower-registry-client@0.1.4
  │ │ │ ├── async@0.2.9
  │ │ │ ├─┬ bower-config@0.4.5
  │ │ │ │ └─┬ optimist@0.6.0
  │ │ │ │   ├── minimist@0.0.5
  │ │ │ │   └── wordwrap@0.0.2
  │ │ │ └── request-replay@0.2.0
  │ │ ├─┬ cardinal@0.4.2
  │ │ │ ├── ansicolors@0.2.1
  │ │ │ └─┬ redeyed@0.4.2
  │ │ │   └── esprima@1.0.4
  │ │ ├─┬ chalk@0.2.1
  │ │ │ ├── ansi-styles@0.2.0
  │ │ │ └── has-color@0.1.1
  │ │ ├── chmodr@0.1.0
  │ │ ├─┬ fstream@0.1.24
  │ │ │ └── inherits@2.0.1
  │ │ ├─┬ fstream-ignore@0.0.7
  │ │ │ ├── inherits@2.0.1
  │ │ │ └─┬ minimatch@0.2.12
  │ │ │   └── sigmund@1.0.0
  │ │ ├─┬ glob@3.2.6
  │ │ │ ├── inherits@2.0.1
  │ │ │ └─┬ minimatch@0.2.12
  │ │ │   └── sigmund@1.0.0
  │ │ ├── graceful-fs@2.0.1
  │ │ ├─┬ handlebars@1.0.12
  │ │ │ ├─┬ optimist@0.3.7
  │ │ │ │ └── wordwrap@0.0.2
  │ │ │ └─┬ uglify-js@2.3.6
  │ │ │   ├── async@0.2.9
  │ │ │   └─┬ source-map@0.1.29
  │ │ │     └── amdefine@0.0.8
  │ │ ├─┬ inquirer@0.3.3
  │ │ │ ├── async@0.2.9
  │ │ │ ├─┬ cli-color@0.2.3
  │ │ │ │ ├── es5-ext@0.9.2
  │ │ │ │ └─┬ memoizee@0.2.5
  │ │ │ │   ├── event-emitter@0.2.2
  │ │ │ │   └── next-tick@0.1.0
  │ │ │ ├── lodash@1.2.1
  │ │ │ └── mute-stream@0.0.3
  │ │ ├── junk@0.2.1
  │ │ ├── lru-cache@2.3.1
  │ │ ├── mkdirp@0.3.5
  │ │ ├── mout@0.6.0
  │ │ ├── nopt@2.1.2
  │ │ ├── open@0.0.4
  │ │ ├── osenv@0.0.3
  │ │ ├─┬ promptly@0.2.0
  │ │ │ └─┬ read@1.0.5
  │ │ │   └── mute-stream@0.0.4
  │ │ ├── q@0.9.7
  │ │ ├─┬ request@2.27.0
  │ │ │ ├── aws-sign@0.3.0
  │ │ │ ├── cookie-jar@0.3.0
  │ │ │ ├── forever-agent@0.5.0
  │ │ │ ├─┬ form-data@0.1.1
  │ │ │ │ ├── async@0.2.9
  │ │ │ │ └─┬ combined-stream@0.0.4
  │ │ │ │   └── delayed-stream@0.0.5
  │ │ │ ├─┬ hawk@1.0.0
  │ │ │ │ ├── boom@0.4.2
  │ │ │ │ ├── cryptiles@0.2.2
  │ │ │ │ ├── hoek@0.9.1
  │ │ │ │ └── sntp@0.2.4
  │ │ │ ├─┬ http-signature@0.10.0
  │ │ │ │ ├── asn1@0.1.11
  │ │ │ │ ├── assert-plus@0.1.2
  │ │ │ │ └── ctype@0.5.2
  │ │ │ ├── json-stringify-safe@5.0.0
  │ │ │ ├── mime@1.2.11
  │ │ │ ├── node-uuid@1.4.1
  │ │ │ ├── oauth-sign@0.3.0
  │ │ │ ├── qs@0.6.5
  │ │ │ └── tunnel-agent@0.3.0
  │ │ ├─┬ request-progress@0.3.1
  │ │ │ └── throttleit@0.0.2
  │ │ ├── retry@0.6.0
  │ │ ├── rimraf@2.2.2
  │ │ ├── semver@2.1.0
  │ │ ├── stringify-object@0.1.7
  │ │ ├─┬ sudo-block@0.2.1
  │ │ │ └─┬ chalk@0.1.1
  │ │ │   ├── ansi-styles@0.1.2
  │ │ │   └── has-color@0.1.1
  │ │ ├─┬ tar@0.1.18
  │ │ │ ├── block-stream@0.0.7
  │ │ │ └── inherits@2.0.1
  │ │ ├── tmp@0.0.21
  │ │ ├─┬ unzip@0.1.9
  │ │ │ ├─┬ binary@0.3.0
  │ │ │ │ ├── buffers@0.1.1
  │ │ │ │ └─┬ chainsaw@0.1.0
  │ │ │ │   └── traverse@0.3.9
  │ │ │ ├─┬ match-stream@0.0.2
  │ │ │ │ └── buffers@0.1.1
  │ │ │ ├─┬ pullstream@0.4.0
  │ │ │ │ ├── over@0.0.5
  │ │ │ │ └── slice-stream@0.0.0
  │ │ │ ├── readable-stream@1.0.17
  │ │ │ └── setimmediate@1.0.1
  │ │ ├─┬ update-notifier@0.1.5
  │ │ │ ├─┬ chalk@0.1.1
  │ │ │ │ ├── ansi-styles@0.1.2
  │ │ │ │ └── has-color@0.1.1
  │ │ │ ├─┬ configstore@0.1.5
  │ │ │ │ ├─┬ js-yaml@2.1.0
  │ │ │ │ │ ├─┬ argparse@0.1.15
  │ │ │ │ │ │ ├── underscore@1.4.4
  │ │ │ │ │ │ └── underscore.string@2.3.3
  │ │ │ │ │ └── esprima@1.0.4
  │ │ │ │ └── lodash@1.3.1
  │ │ │ ├─┬ request@2.22.0
  │ │ │ │ ├── aws-sign@0.3.0
  │ │ │ │ ├── cookie-jar@0.3.0
  │ │ │ │ ├── forever-agent@0.5.0
  │ │ │ │ ├─┬ form-data@0.0.8
  │ │ │ │ │ ├── async@0.2.9
  │ │ │ │ │ └─┬ combined-stream@0.0.4
  │ │ │ │ │   └── delayed-stream@0.0.5
  │ │ │ │ ├─┬ hawk@0.13.1
  │ │ │ │ │ ├─┬ boom@0.4.2
  │ │ │ │ │ │ └── hoek@0.9.1
  │ │ │ │ │ ├── cryptiles@0.2.2
  │ │ │ │ │ ├── hoek@0.8.5
  │ │ │ │ │ └─┬ sntp@0.2.4
  │ │ │ │ │   └── hoek@0.9.1
  │ │ │ │ ├─┬ http-signature@0.10.0
  │ │ │ │ │ ├── asn1@0.1.11
  │ │ │ │ │ ├── assert-plus@0.1.2
  │ │ │ │ │ └── ctype@0.5.2
  │ │ │ │ ├── json-stringify-safe@4.0.0
  │ │ │ │ ├── mime@1.2.11
  │ │ │ │ ├── node-uuid@1.4.1
  │ │ │ │ ├── oauth-sign@0.3.0
  │ │ │ │ ├── qs@0.6.5
  │ │ │ │ └── tunnel-agent@0.3.0
  │ │ │ └── semver@2.0.11
  │ │ └── which@1.0.5
  │ ├── colors@0.6.2
  │ ├── lodash@0.10.0
  │ ├─┬ rimraf@2.0.3
  │ │ └── graceful-fs@1.1.14
  │ └── wrench@1.4.4
  ├─┬ grunt-cli@0.1.9
  │ ├─┬ findup-sync@0.1.2
  │ │ ├─┬ glob@3.1.21
  │ │ │ ├── graceful-fs@1.2.3
  │ │ │ ├── inherits@1.0.0
  │ │ │ └─┬ minimatch@0.2.12
  │ │ │   ├── lru-cache@2.3.1
  │ │ │   └── sigmund@1.0.0
  │ │ └── lodash@1.0.1
  │ ├─┬ nopt@1.0.10
  │ │ └── abbrev@1.0.4
  │ └── resolve@0.3.1
  ├─┬ grunt-concurrent@0.3.1
  │ └── lpad@0.1.0
  ├─┬ grunt-contrib-jshint@0.6.4
  │ └─┬ jshint@2.1.11
  │   ├─┬ cli@0.4.5
  │   │ └─┬ glob@3.2.6
  │   │   └── inherits@2.0.1
  │   ├── console-browserify@0.1.6
  │   ├─┬ minimatch@0.2.12
  │   │ ├── lru-cache@2.3.1
  │   │ └── sigmund@1.0.0
  │   ├── shelljs@0.1.4
  │   └── underscore@1.4.4
  ├─┬ grunt-contrib-watch@0.5.3
  │ ├─┬ gaze@0.4.1
  │ │ └─┬ globule@0.1.0
  │ │   ├─┬ glob@3.1.21
  │ │   │ ├── graceful-fs@1.2.3
  │ │   │ └── inherits@1.0.0
  │ │   ├── lodash@1.0.1
  │ │   └─┬ minimatch@0.2.12
  │ │     ├── lru-cache@2.3.1
  │ │     └── sigmund@1.0.0
  │ └─┬ tiny-lr@0.0.4
  │   ├── debug@0.7.2
  │   ├── faye-websocket@0.4.4
  │   ├─┬ noptify@0.0.3
  │   │ └─┬ nopt@2.0.0
  │   │   └── abbrev@1.0.4
  │   └── qs@0.5.6
  ├─┬ grunt-mocha-test@0.7.0
  │ └─┬ mocha@1.13.0
  │   ├── commander@0.6.1
  │   ├── debug@0.7.2
  │   ├── diff@1.0.7
  │   ├─┬ glob@3.2.3
  │   │ ├── graceful-fs@2.0.1
  │   │ ├── inherits@2.0.1
  │   │ └─┬ minimatch@0.2.12
  │   │   ├── lru-cache@2.3.1
  │   │   └── sigmund@1.0.0
  │   ├── growl@1.7.0
  │   ├─┬ jade@0.26.3
  │   │ └── mkdirp@0.3.0
  │   └── mkdirp@0.3.5
  ├─┬ grunt-nodemon@0.1.1
  │ └── nodemon@0.7.10
  ├─┬ jade@0.35.0
  │ ├── character-parser@1.2.0
  │ ├── commander@2.0.0
  │ ├─┬ constantinople@1.0.2
  │ │ └─┬ uglify-js@2.4.0
  │ │   ├─┬ optimist@0.3.7
  │ │   │ └── wordwrap@0.0.2
  │ │   ├─┬ source-map@0.1.29
  │ │   │ └── amdefine@0.0.8
  │ │   └── uglify-to-browserify@1.0.1
  │ ├── mkdirp@0.3.5
  │ ├─┬ monocle@1.1.50
  │ │ └─┬ readdirp@0.2.5
  │ │   └─┬ minimatch@0.2.12
  │ │     ├── lru-cache@2.3.1
  │ │     └── sigmund@1.0.0
  │ ├─┬ transformers@2.1.0
  │ │ ├─┬ css@1.0.8
  │ │ │ ├── css-parse@1.0.4
  │ │ │ └── css-stringify@1.0.5
  │ │ ├─┬ promise@2.0.0
  │ │ │ └── is-promise@1.0.0
  │ │ └─┬ uglify-js@2.2.5
  │ │   ├─┬ optimist@0.3.7
  │ │   │ └── wordwrap@0.0.2
  │ │   └─┬ source-map@0.1.29
  │ │     └── amdefine@0.0.8
  │ └─┬ with@1.1.1
  │   └─┬ uglify-js@2.4.0
  │     ├─┬ optimist@0.3.7
  │     │ └── wordwrap@0.0.2
  │     ├─┬ source-map@0.1.29
  │     │ └── amdefine@0.0.8
  │     └── uglify-to-browserify@1.0.1
  ├── mean-logger@0.0.1
  ├─┬ mongoose@3.6.20
  │ ├── hooks@0.2.1
  │ ├─┬ mongodb@1.3.19
  │ │ ├── bson@0.2.2
  │ │ └── kerberos@0.0.3
  │ ├── mpath@0.1.1
  │ ├─┬ mpromise@0.2.1
  │ │ └── sliced@0.0.4
  │ ├── ms@0.1.0
  │ ├── muri@0.3.1
  │ ├── regexp-clone@0.0.1
  │ └── sliced@0.0.5
  ├─┬ passport@0.1.17
  │ ├── pause@0.0.1
  │ └── pkginfo@0.2.3
  ├─┬ passport-facebook@1.0.1
  │ └─┬ passport-oauth2@1.1.1
  │   ├── oauth@0.9.10
  │   ├── passport-strategy@1.0.0
  │   └── uid2@0.0.3
  ├─┬ passport-github@0.1.5
  │ ├─┬ passport-oauth@0.1.15
  │ │ └── oauth@0.9.10
  │ └── pkginfo@0.2.3
  ├─┬ passport-google-oauth@0.1.5
  │ ├─┬ passport-oauth@0.1.15
  │ │ └── oauth@0.9.10
  │ └── pkginfo@0.2.3
  ├─┬ passport-local@0.1.6
  │ └── pkginfo@0.2.3
  ├─┬ passport-twitter@1.0.2
  │ ├─┬ passport-oauth1@1.0.1
  │ │ ├── oauth@0.9.10
  │ │ ├── passport-strategy@1.0.0
  │ │ └── utils-merge@1.0.0
  │ └─┬ xtraverse@0.1.0
  │   └── xmldom@0.1.16
  ├── should@1.3.0
  ├─┬ supertest@0.8.0
  │ ├── methods@0.0.1
  │ └─┬ superagent@0.15.1
  │   ├── cookiejar@1.3.0
  │   ├── debug@0.7.2
  │   ├── emitter-component@1.0.0
  │   ├── formidable@1.0.9
  │   ├── mime@1.2.5
  │   └── qs@0.6.5
  ├── underscore@1.5.2
  └── view-helpers@0.1.2
  </code></pre>
  
  <p>Thanks for helping out.</p>