13r*_*337 5 less node.js express
我有一个运行较少中间件的node.js服务器.根据我的理解,它在运行中编译并将css文件放在目标/同一(如果未指定)文件夹中.
我的问题是我在css文件的get请求上遇到404错误:
呃: GET http://webserver/public/less/blog-reset.css 404 (Not Found)
这是我正在使用的:
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);
});
Run Code Online (Sandbox Code Playgroud)
博客-的layout.html
<head>
<title>EpiBlog</title>
<link href='/public/less/blog-reset.css' rel='stylesheet' type='text/css'/>
</head>
<body>
{{{yield}}}
</body>
Run Code Online (Sandbox Code Playgroud)
目录布局
ROOT
public
less
src
web.js
Run Code Online (Sandbox Code Playgroud)
版本
我尝试过的:
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这个:
app.use(lessMiddleware(path.join(__dirname, 'source', 'less'), {
dest: path.join(__dirname, 'public')
}));
Run Code Online (Sandbox Code Playgroud)
问题是:
<link href='/public/less/blog-reset.css' rel='stylesheet' type='text/css'/>
Run Code Online (Sandbox Code Playgroud)
本来应该:
<link href='/less/blog-reset.css' rel='stylesheet' type='text/css'/>
Run Code Online (Sandbox Code Playgroud)
我读到:
link(rel='stylesheet', type='text/css', href='css/styles.css')
Run Code Online (Sandbox Code Playgroud)
与目录结构配对:
myapp
+-public
+-css
+-styles.less
Run Code Online (Sandbox Code Playgroud)
这让我相信这个电话:
app.use(express.static(path.join(__dirname,'public')));
Run Code Online (Sandbox Code Playgroud)
使请求假设/public/是父级,所以我是多余的调用/public/less/blog-reset.css
在这里找到了参考:express.js less编译器:无法工作
| 归档时间: |
|
| 查看次数: |
929 次 |
| 最近记录: |