Express应用程序不在生产服务器上提供静态文件

问题描述 投票:0回答:1

我正在使用Express构建一个简单的(至少从后端角度而言)单页应用程序。这个应用程式在本机运作良好,但是在部署之后,我的静态档案无法运作。我环顾四周,我相信自己正确使用了express.static()。还要注意的另一件事是,我已将其部署在GoDaddy上。不知道这是否会引起任何问题,但可能是相关信息。

这里是指向我的托管站点的链接,请随时检查自己:http://senseless.world/

我在app.js文件中的相关代码如下(我排除了一些无关的部分:]

const express = require('express');
const app = express();
const path = require('path');
const router = express.Router();

app.use('/static', express.static(__dirname+'/static'));
router.get('/',function(req,res){
  res.render(path.join(__dirname+'/static/index.ejs'), {routeStr: ''});
});
app.use('/', router);
app.listen(process.env.port || 3000);

这是我在index.ejs文件中加载静态文件的方式:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>Senseless World</title>
    <link rel="stylesheet" href="static/styles/main.css?version=8" type="text/css">
    <link rel="stylesheet" href="/static/styles/mobile-styles.css?version=3" type="text/css">
    <script src="/static/scripts/vendors/jquery-3.5.0.min.js"></script>
    <script src="/static/scripts/vendors/p5.min.js"></script>
    <script src="/static/scripts/vendors/p5.sound.js"></script>
    <script src="/static/scripts/bundle.js" type="module"></script>
    <script src="/static/scripts/modal-page-open.js?version=5"></script>
    <script src="/static/scripts/flashlight.js?version=3"></script>
    <link rel="icon" href="/static/senseless-favicon-16.png" type="image/png" sizes="16x16">
    <link rel="icon" href="/static/senseless-favicon-32.png" type="image/png" sizes="32x32">
  </head>
...

我在控制台中看到的错误如下:

enter image description here

这是从网络控制台中看到的内容:enter image description here

node.js express ejs static-files unexpected-token
1个回答
0
投票

您可以遵循此代码

const express = require('express');
const app = express();
const path = require('path');
const router = express.Router();

// At first create public folder and move all ejs file in public folder
app.use('/static', express.static(__dirname+'/static'));
router.get('/',function(req,res){
  res.render(path.join(index.ejs);
});
app.use('/', router);
app.listen(process.env.port || 3000);
© www.soinside.com 2019 - 2024. All rights reserved.