javascript - Express js 外部 javascript 文件未加载

标签 javascript html node.js express

我使用 Express 应用程序来提供静态预编译的 Jade 文件。其中包括一个外部 javascript 文件。但在页面加载时它没有加载。但我可以通过快速静态/公共(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:站点未定义

谢谢。

最佳答案

app.use('/public/js',express.static(path.join(__dirname, '/public/scripts'))); 添加到 app.js,以指示 pulic 文件夹的子文件夹;

如果仍然不起作用,请将 src="/scripts/site.js" 更改为 src="/public/scripts/site.js";

关于javascript - Express js 外部 javascript 文件未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25002023/

相关文章:

javascript - &lt;input type ="text">与其后续元素<div>之间有空格。有没有办法让它们内联可见

html - 使用 Jquery 的滚动菜单

javascript - 我应该在哪里托管用于 ajax 调用的 php 文件?

javascript - 任何基于 JavaScript/jQuery 的 html 数据处理器/美化器?

javascript - React、JavaScript 中捕获 504(网关超时)错误

JavaScript,Matter.js : Increase radius of circle

node.js - 如何在 Node 执行函数中将参数传递给 bash 命令?

javascript - 在 MongoDB 中跟踪文档属性更改的最佳方法是什么?

Javascript + AngularJS - 比较 JSON

javascript - jQuery scrollTop 检测需要很长时间