javascript - 使用 MEAN 部署到 iis 服务器时出现意外 token <

标签 javascript jquery iis mean-stack

我是 MEAN 新手,我刚刚在应用程序中内置了一些功能,但现在我正在尝试在 iis 服务器上部署。我获取了所有路径,但由于以下错误没有显示任何内容

Uncaught SyntaxError: Unexpected token < jquery.js:1

当我单击查看错误时,chrome 开发工具会向我显示如下所示的索引文件并指向第一行。有人知道我如何解决上面的错误吗?

index.html

<!DOCTYPE html>
<html>
 <head>

  <meta charset="utf-8"/>

  <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"/>
  <link rel="stylesheet" href="vendor/toastr/toastr.css"/>
  <link rel="stylesheet" href="css/site.css"/>
  <link rel="stylesheet" href="vendor/angular-material/angular-material.css"/>
  <link rel="stylesheet" href="vendor/angular-material-icons/angular-material-icons.css" />

  <title>My App</title>
 </head>

 <body ng-app="fullStackScratch">
  <div ng-view=""></div>
  <footer>
    <div layout="row" layout-align="center center">
      <p> &copy; Testing Footer</p>
    </div>
  </footer>


  <script src="vendor/jquery/dist/jquery.js" type="text/javascript"></script>
  <script src="vendor/angular/angular.js" type="text/javascript"></script>
  <script src="vendor/angular-resource/angular-resource.js" type="text/javascript"></script>
  <script src="vendor/angular-route/angular-route.js" type="text/javascript"></script>
  <script src="vendor/angular-animate/angular-animate.js" type="text/javascript"></script>
  <script src="vendor/angular-material/angular-material.js" type="text/javascript"></script>
  <script src="vendor/angular-aria/angular-aria.js" type="text/javascript"></script>
  <script src="vendor/angular-material-icons/angular-material-icons.min.js" type="text/javascript"></script>

  <script src="app/app.js"></script>
  <script src="app/main/MainCtrl.js"></script>
  <script src="app/account/login.controller.js"></script>
 </body>
</html>

我刚刚添加了以下文件

route.js

var passport = require('passport');

module.exports = function (app){
  app.get('/partials/*', function(req, res){
    res.render('../../public/app/' + req.params[0]);
  });

app.post('/login', function (req, res, next) {
    var auth = passport.authenticate('local', function (err, user) {
    if(!user){
    res.send({success:false})
  }
  req.logIn(user, function(err){
    if(err){
      return next(err);
    }
    res.send({success:true, user:user})
  })
});
auth(req, res, next);
});

  app.get('*', function(req, res){
    res.render('index');
  });
}

server.js

var express = require('express');
var mongoose = require('mongoose');
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;

var env = process.env.NODE_ENV = process.env.NODE_ENV || 'development';

var app = express();
var config = require('./server/config/config.js') [env];

require('./server/config/express.js')(app, config);
require('./server/config/mongoose.js')(config);

var users = mongoose.model('users');
passport.use(new LocalStrategy(
  function (username, password, done) {
    users.findOne({username: username}).exec(function (err, user) {
     if(user){
        return done(null, user);
     }else {
        return done(null, false);
     }
    })
  }
));

passport.serializeUser(function (user, done) {
  if(user){
    done(null, user._id);
 }
});

passport.deserializeUser(function (id, done) {
  users.findOne({_id:id}).exec(function(err, user){
    if(user){
      return done(null, user);
    }else {
      return done(null, false);
    }
  })
})

require('./server/config/routes.js')(app);

app.listen(config.port);
console.log('Listening on port ' + config.port + '...');

express.js

var express = require('express');
var stylus = require('stylus');
var logger = require('morgan');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var session = require('express-session');
var passport = require('passport');

module.exports = function(app, config){
  function compile(str, path) {
    return stylus(str).set('filename', path);
  }

  app.set('views', config.rootPath + '/server/views');
  app.engine('html', require('ejs').renderFile);
  app.set('view engine', 'html');
  app.use(logger('dev'));
  app.use(cookieParser());
  app.use(bodyParser());
  app.use(session({secret: 'full stack from scratch'}));
  app.use(passport.initialize());
  app.use(passport.session());
  app.use(stylus.middleware(
    {
      src: config.rootPath + '/public',
      compile: compile
    }
  ));
  app.use(express.static(config.rootPath + '/public'));
  }

最佳答案

我猜测您的应用程序的路由方式存在某种问题,它试图为您的 HTML 文件而不是 jquery 文件提供服务。因此,当页面加载第一个 HTML 文件,然后调用 jquery 文件时,浏览器会因为无法解析第二个 HTML 文件(它认为是一个 javascript 文件)而报错。

关于javascript - 使用 MEAN 部署到 iis 服务器时出现意外 token <,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36654963/

相关文章:

javascript - 如何使用 Promise 中的值异步更新 AngularJS 状态

javascript - 嵌套的 Accordion 也折叠了其他组的所有内容

javascript - 当用户向下滚动时为图表制作动画

javascript - 只接受数字的 Vue 输入

javascript - jQuery - 删除克隆的元素

asp.net - Web Deploy 3.0 在大型网站 .net MVC 网站上非常慢

javascript - 如何设置简单的 firebase ajax 请求?

javascript - 如何将 Node.js 变量放入我的 &lt;script&gt;&lt;/script&gt; 中?

WCF 线程被中止错误

asp.net - 以下资源缺少缓存过期 如何设置 javascript 文件的缓存过期?