2016-07-16 13 views
0

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] 

Antwort

0

Haben Sie versucht: app.use('/' + project_name, express.static(path.join(__dirname, project_name)));

+0

Ich versuchte th an, aber leider hat es nicht funktioniert. Ich bekomme eine 502, "Service vorübergehend nicht verfügbar". – DeEgge

Verwandte Themen