Ich versuche, einen statischen Ordner in einer einfachen Node.js + Express-Anwendung zu verwenden, aber immer mit einem 404-Fehler enden.So verwenden Sie statische Ordner über Express auf Shared Hosting
Ich habe eine Grundstruktur über express project_name
mit der folgenden Ordnerstruktur (ich es auf die notwendigen Teile reduziert):
app.js
/views
\-- layout.pug
/public
\-- /stylesheets
\-- style.css
app.js
von Express erstellt wurde, ein es sieht wie folgt aus (auch reduziert):
var express = require('express');
var path = require('path');
var routes = require('./routes/index');
var users = require('./routes/users');
var app = express();
app.use(express.static(path.join(__dirname, 'public')));
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
app.use('/', routes);
app.use('/users', users);
module.exports = app;
Referenz ich ein Stylesheet style.css
in layout.pug
wie diese
link(rel='stylesheet', href='stylesheets/style.css')
ich hinzufügen möchte, dass ich auf einem gemeinsamen Host meiner Anwendung bin Hosting (Uberspace). Das bedeutet, dass sich mein Projekt im Home-Verzeichnis meines Benutzers befindet, die Anwendung als Dienst (Daemon) ausgeführt wird und ich es über .htaccess
von html/project_name-folder
meines Benutzers an http://localhost:port
(Node.js-Anwendung) umleite.
Wenn ich die Anwendung ausführen, bekomme ich immer einen 404-Fehler auf http://domain.tld/project_name/stylesheets/style.css
bearbeiten
Das ist mein .htaccess
(I die tatsächliche Portnummer mit 'Hafen' ersetzt):
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{ENV:HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteRule (.*) http://localhost:port/$1 [P]
Ich versuchte th an, aber leider hat es nicht funktioniert. Ich bekomme eine 502, "Service vorübergehend nicht verfügbar". – DeEgge