快递js外部JavaScript文件不加载
我使用一个快速的应用程序来提供静态的预编译的jade文件。 其中包括一个外部的JavaScript文件。 但是在页面加载的时候没有加载。 但我可以访问的快递静态/公共url的JavaScript。 为什么不在html上加载?
app.js
var express = require('express'), path = require('path'), sass = require('node-sass'); var app = express(); /* default configurations */ app.set('views', __dirname + '/public'); app.engine('html', require('ejs').renderFile); app.use(express.static(path.join(__dirname, 'public'))); /* routes */ app.get('/', function(req, res) { res.send('Hello World'); }); app.get('/home', function(req, res) { res.render('index.html'); }); module.exports = app;
的index.html
<body> <script type="text/javscript" src="/scripts/site.js"></script> <script type="text/javascript"> window.onload = function() { Site.View.init(); } </script> </body>
site.js
var Site = Site || {}; Site.View = { init : function() { alert('view'); } };
当我在浏览器中打开页面时,我得到ReferenceError:网站没有定义
谢谢。
添加app.use('/public/js', express.static(path.join(__dirname, '/public/scripts')));
到app.js,以指示pulic文件夹的子文件夹;
如果仍然无效, src="/scripts/site.js"
更改为src="/public/scripts/site.js"
;
site.js必须位于您的根目录中的public / scripts内。
我不知道,但意见和expression静态页面已经到您的代码中的公共目录。 使用默认configuration: app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.use(express.static(path.join(__dirname, 'public')));
app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.use(express.static(path.join(__dirname, 'public')));
你也可以像这样为它添加一个路由:
app.get('scripts/site.js', function(req, res){ res.send('./scripts/site.js'); }