gpt4 book ai didi

node.js - less-middleware 没有编译,得到 404

转载 作者:搜寻专家 更新时间:2023-10-31 22:45:49 26 4
gpt4 key购买 nike

我有一个运行 less-middleware 的 node.js 服务器。根据我的理解,它会即时编译并将 css 文件放在目标/相同(如果未指定)文件夹中。

我的问题是我在获取 css 文件请求时收到 404 错误:

错误:GET http://webserver/public/less/blog-reset.css 404(未找到)

这是我正在使用的:

web.js

//requiring dependencies
var express = require("express");
var logfmt = require("logfmt");
var lessMiddleware = require('less-middleware');
var hogan = require('hogan-express');
var path = require('path');

//all environments
var app = module.exports = express();
var port = Number(process.env.PORT || 5000);

app.use(logfmt.requestLogger());
app.use(lessMiddleware(path.join(__dirname,'public')));
app.use(express.static(path.join(__dirname,'public')));
app.set('layout',path.join(__dirname,'src','views','blog-layout'));
app.enable('view cache');
app.engine('.html',hogan);

//page routing called after env loads
require('./src/router');

//listening port
app.listen(port, function() {
console.log("Listening on " + port);
});

blog-layout.html

<head>
<title>EpiBlog</title>
<link href='/public/less/blog-reset.css' rel='stylesheet' type='text/css'/>
</head>
<body>
{{{yield}}}
</body>

目录布局

ROOT
public
less
src
web.js

版本

  • less-middleware v0.2.1-beta
  • express v4.0.0

我尝试过的:

  • 使用 app.use(lessMiddleware)({ src: __dirname + '/public' }));(显然是老方法)
  • 使用 app.use(lessMiddleware(path.join(__dirname,'public','less')));
  • 移动 app.use(express.static(path.join(__dirname,'public'))); 从 web.js 到 router.js
  • 尝试不同的路径
  • 将 router.js 的内容移动到 web.js
  • 指定目的地使用

这个:

app.use(lessMiddleware(path.join(__dirname, 'source', 'less'), {
dest: path.join(__dirname, 'public')
}));

最佳答案

问题是:

<link href='/public/less/blog-reset.css' rel='stylesheet' type='text/css'/>

应该是:

<link href='/less/blog-reset.css' rel='stylesheet' type='text/css'/>

我读到:

link(rel='stylesheet', type='text/css', href='css/styles.css')

与目录结构配对:

myapp
+-public
+-css
+-styles.less

这让我相信这个电话:

app.use(express.static(path.join(__dirname,'public')));

使请求假定 /public/ 是父级,所以我调用 /public/less/blog-reset.css 是多余的

在此处找到引用:express.js less compiler: can not get work

关于node.js - less-middleware 没有编译,得到 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23087647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com