如何在共享主机
问题描述:
我想在一个简单的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]
答
你试过了吗: app.use('/' + project_name, express.static(path.join(__dirname, project_name)));
我试过了在,但不幸的是,它没有奏效。我得到一个502,'服务暂时不可用'。 – DeEgge