【问题标题】:MEAN stack app not working on Ubuntu (works in local)MEAN 堆栈应用程序无法在 Ubuntu 上运行(在本地运行)
【发布时间】:2018-02-20 03:55:32
【问题描述】:

我开发了一个简单的 MEAN 堆栈应用程序(使用 Angular 4 for UI)。 它在我的本地节点上运行良好,但是当我在 Ubuntu 上部署它时,它给出了

Uncaught SyntaxError: Unexpected token : in browser console

这是我的 app.js 内容

const app = express();

const users = require('./routes/users');
const client = require('./routes/client');

// Port Number
//const port = 3000;
// Port Number
const port = process.env.PORT || 3001;

// CORS Middleware
app.use(cors());

// Set Static Folder
app.use(express.static(path.join(__dirname, 'public')));

// Body Parser Middleware
app.use(bodyParser.json());

// Passport Middleware
app.use(passport.initialize());
app.use(passport.session());

require('./config/passport')(passport);

app.use('/users', users);
app.use('/client', client);

// Index Route
app.get('/', (req, res) => {
  res.send('Invalid Endpoint');
});

app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, 'public/index.html'));
});

// Start Server
app.listen(port, () => {
  console.log('Server started on port '+port);
});

我的公共文件夹下的 index.html

    <html lang="en">
<head>
  <meta charset="utf-8">
  <title>MEAN</title>
  <base href=".">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">

  <!--Bootstrap and jQuery online links-->
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

  <!-- For login Html -->
  <link rel="stylesheet" href="assets/icons/simple-line-icons.css">


</head>
<body>
  <app-root></app-root>
<script type="text/javascript" src="inline.bundle.js"></script><script type="text/javascript" src="polyfills.bundle.js"></script><script type="text/javascript" src="styles.bundle.js"></script><script type="text/javascript" src="vendor.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body>
</html>

【问题讨论】:

  • 您是否尝试过清除所有缓存?您是否确保这些文件具有您的服务器可以访问的正确权限?
  • 我只是在谈论您的本地浏览器缓存,如果您查看浏览器中的网络选项卡,您能看到请求在正确的位置发出正确的文件吗?
  • @OArnarsson - 是的,我试过了,但同样的问题,我可以看到脚本/js 文件正在加载(状态:200)。在控制台中我得到这个:inline.bundle.js:1 Uncaught SyntaxError: Unexpected token
  • 这可能是因为你的角度找不到文件。您是在子文件夹中部署应用程序,还是在根位置?
  • @David - 我的 app.js 和 'public' 文件夹在同一级别,公共文件夹 index.html 和其他 js 文件在同一级别

标签: node.js angular express


【解决方案1】:

尝试将:'public' 更改为:'/public',也许相对路径有帮助?

【讨论】:

  • :( '/public' 运气不好 -- path.join(__dirname, 'public/index.html') 在我打印时给出了正确的路径
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-09
  • 2020-01-19
  • 2016-07-22
  • 2021-03-14
  • 2018-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多