我正在尝试在简单的Node.js + Express应用程序中使用静态文件夹,但总是会出现404错误。
我通过express project_name
创建了一个基本结构,其中包含以下文件夹结构(我将其缩减为必要部分):
app.js
/views
\-- layout.pug
/public
\-- /stylesheets
\-- style.css
app.js
是由Express创建的,它看起来像这样(也减少了):
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-application)。
当我运行该应用程序时,我总是在http://domain.tld/project_name/stylesheets/style.css
修改
这是我的.htaccess
(我用' port'替换了实际的端口号):
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{ENV:HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteRule (.*) http://localhost:port/$1 [P]
答案 0 :(得分:0)
你试过了吗?
app.use('/' + project_name, express.static(path.join(__dirname, project_name)));