正如我在Order of router precedence in express.js中提出的问题。我知道express.js的顺序是先到先得。但是,随着代码的咆哮,我不明白为什么' __ dirname'已经在其他代码的上面声明并修复了但是我从./public/abc.js调用了javascript,该应用程序返回主页的HTML标记。 我的网页包含一些javascript,无法加载。服务器返回100%HTML
我正在使用快速生成器和文件夹的结构如下。
的NodeJS
var routes = require('./routes/index');
var api = require('./routes/api');
var users = require('./routes/users');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
// uncomment after placing your favicon in /public
//app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/api', api);
app.use('/users', users);
app.use('/:shopName', function(req, res, next) {
req.shopName = req.params.shopName;
next();
}, routes);
app.use('/', function(req, res) {
res.render('index', {
title: 'MainPage'
});
});
客户端Javascript放入脚本标签,如
<script type="text/javascript" src='./public/javascripts/Crypto/crytoUtils.js'></script>
浏览器发出错误&#34; Uncaught SyntaxError:意外的令牌&lt; cryptoUtils.js&#34;在控制台中,当我点击链接时,我看到主页HTML标记..
帮我解决问题......请帮忙。感谢
答案 0 :(得分:1)
js文件的路径应为 ./ abc.js , public 除非您使用以下命令将其设置为静态文件的根目录:
app.use('/public', express.static(path.join(__dirname, 'public')));
要明确,我建议使用上面的代码 NOT ,而是修改脚本标记src属性中的url,以便在 / javascripts / Crypto /的位置正确定位文件。 crytoUtils.js