Express js外部javascript文件未加载
Express js external javascript file not loading
我使用一个express应用程序来提供一个静态预编译的jade文件。其中包括一个外部javascript文件。但是在页面加载的时候它不会被加载。但是我可以通过express static/public 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: Site is not defined
谢谢。
将app.use('/public/js', express.static(path.join(__dirname, '/public/scripts')));
添加到app.js中,以指示公用文件夹的子文件夹;
如果仍然不行,将src="/scripts/site.js"
改为src="/public/scripts/site.js"
;
site.js必须位于根目录下的public/scripts中。
我不确定,但视图和表达静态页面都去了公共目录在你的代码。使用默认配置如下: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');
}
相关文章:
- 加载文件,然后调用回调函数
- 根据浏览器大小加载文件
- 错误:无法在“XMLHttpRequest”上执行“发送”:无法加载“文件”:AngularJS SPA
- Ajax在mootools中使用来加载文件
- 加载文件时xmlhttp不稳定,如何修复
- Require.js何时加载文件
- 有没有办法在不打包的情况下在 nodejs 上加载文件
- 如何通过从浏览器 js 控制台触发的 require.js 重新加载文件
- 使用jQuery加载文件,计算类的元素并设置间隔比率
- 如何在 AngularJS UI 路由器中从bower_component加载文件
- JavaScript 本地应用程序保存/加载文件
- 如何在特定页面上加载文件
- 内容安全策略不从本地主机加载文件
- Javascript 无法从其他目录加载文件
- Extjs MVC 文件夹结构无法加载文件
- 节点.js - 在运行时加载文件
- nodejs加载文件
- Javascript/AAJAX仅重新加载文件“;onchange”;
- 加载文件,并在特定行之后删除javascript/jquery中的所有剩余行
- 是否可以在非服务页面上使用JS/HTML5 FileReader加载文件