i have application in angular, , want hook express encrypt , send private api keys won't stored plainly on client.
my problem browser reads statically served js files text/html, causing javascript not load. can see response 200 , file there, not being interpreted correctly.
index.html has many script requests these
<script type="text/javascript" src="/keys.js"></script> <script type="text/javascript" src="/public/lib/underscore/underscore-min.js"></script> <script type="text/javascript" src="/public/lib/jquery/dist/jquery.min.js"></script> <script type="text/javascript" src="/public/lib/bootstrap/dist/js/bootstrap.min.js"></script> ...
express routing code:
var express = require('express'); var path = require('path'); var app = express(); app.use(express.static(path.resolve('./public'))); app.get('*', function(req,res) { res.sendfile(path.resolve('./public/views/index.html')); }); app.listen(3000);
anyone experienced express - proper way serve static files different mime types? need serve text/css types well.
you've configured application return index.html
every request:
app.get('*', function(req,res) { res.sendfile(path.resolve('./public/views/index.html')); });
so express dutifully that, serves index.html
, requests, including requests want have return js
files via script
tags. example, request /public/lib/underscore/underscore-min.js
return file @ /public/views/index.html
.
a simple fix return index.html
root request:
app.get('/', function(req,res) { res.sendfile(path.resolve('./public/views/index.html')); });
in way index.html
served @ root javascript assets still reached because aren't serving index.html
every request.
additionally, since you've told express static assets can found @ /public
, there's no need include directory when requesting them. so, script
includes should like:
<script type="text/javascript" src="/lib/underscore/underscore-min.js"></script> <script type="text/javascript" src="/lib/jquery/dist/jquery.min.js"></script> <script type="text/javascript" src="/lib/bootstrap/dist/js/bootstrap.min.js"></script>
Comments
Post a Comment