我想在一個簡單的Node.js + Express應用程序使用一個靜態文件通過快遞使用靜態文件夾,但始終與一個404錯誤告終。如何在共享主機
我經由express project_name
創建了一個基本結構與下面的文件夾結構(I它減少到必要的部分):
app.js
/views
\-- layout.pug
/public
\-- /stylesheets
\-- style.css
app.js
物通過快速創建它看起來像這樣(也降低):
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;
我引用的樣式表style.css
在layout.pug
這樣
link(rel='stylesheet', href='stylesheets/style.css')
我可能要補充一點,我在我的託管應用程序中共享主機(Uberspace)上。這意味着我的項目位於我的用戶的主目錄,運行應用程序作爲服務(守護進程)和我通過.htaccess
其重定向到從我的用戶的html/project_name-folder
到http://localhost:port
(Node.js的應用程序)。
當我運行應用程序,我總是得到一個404錯誤上http://domain.tld/project_name/stylesheets/style.css
編輯
這是我.htaccess
(我更換了實際的端口號與 '口'):
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{ENV:HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteRule (.*) http://localhost:port/$1 [P]
我試過了在,但不幸的是,它沒有奏效。我得到一個502,'服務暫時不可用'。 – DeEgge