Express приложение не обслуживает файлы статистики c на рабочем сервере - PullRequest
0 голосов
/ 06 мая 2020

Я создаю простое (по крайней мере, с точки зрения серверной части) одностраничное приложение, используя Express. Это приложение работает отлично локально, но после его развертывания мои файлы stati c не работают. Я осмотрелся и считаю, что правильно использую express .stati c (). Также следует отметить, что я развернул его на GoDaddy. Не уверен, что это вызывает какие-либо проблемы, но, возможно, имеет отношение к информации.

Вот ссылка на мой размещенный сайт, не стесняйтесь проверить себя: http://senseless.world/

Мой соответствующий код в моем приложении. 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);

Вот как я загружаю файлы stati c в свой index.e js файл:

<!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


Решено:

Это нужно в моем .htaccess

RewriteEngine On
DirectoryIndex disabled
RewriteRule ^$ http://127.0.0.1:3000/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:3000/$1 [P,L]

1 Ответ

0 голосов
/ 06 мая 2020

Вы можете следовать этому коду

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);
...