Redirect 如何将资产重定向到公众,使公众不可见,并使LessMiddle软件正常工作
昨天我有一个带有生成css的公共文件夹,还有一个带有更少css的源文件夹Redirect 如何将资产重定向到公众,使公众不可见,并使LessMiddle软件正常工作,redirect,express,nginx,less,middleware,Redirect,Express,Nginx,Less,Middleware,昨天我有一个带有生成css的公共文件夹,还有一个带有更少css的源文件夹 root /public /css /source /less 还有一个像这样的中间件 module.exports = function (app, dir) { return lessMiddleware(path.join(dir, 'source', 'less'), { dest: path.join(dir), prepr
root
/public
/css
/source
/less
还有一个像这样的中间件
module.exports = function (app, dir) {
return lessMiddleware(path.join(dir, 'source', 'less'), {
dest: path.join(dir),
preprocess: {
path: function(pathname, req) {
return pathname.replace('public' + path.sep + 'css' + path.sep, '');
}
}
});
};
if (settings.debug) {
app.use('/assets', express.static(path.join(__dirname, "public")));
}
它工作正常,除了根目录是打开的,我可以访问公共文件夹。所以,我把NGINX作为代理,没有问题,它拒绝访问根文件夹,并将“资产”重定向到“公共”
所以我有一个类似url的http://localhost/assets/css/main.css
今天,为了调试的目的,我想去掉nginx。所以我给静态访问资产文件夹,如下所示
module.exports = function (app, dir) {
return lessMiddleware(path.join(dir, 'source', 'less'), {
dest: path.join(dir),
preprocess: {
path: function(pathname, req) {
return pathname.replace('public' + path.sep + 'css' + path.sep, '');
}
}
});
};
if (settings.debug) {
app.use('/assets', express.static(path.join(__dirname, "public")));
}
问题是较少的中间件停止工作,因为这段代码更改了中间件的路径
c:\node\myproject\source\less\assets\css\main.less
有没有一种方法可以使用express js标准静态中间件将“资产”重定向到“公共”上?还是用“/public”替换“/assets”并传递此请求的标准方法
我可以用应用程序来实现。获取。。。以及解析请求等等。我还可以更改中间件“preprocess”指令。但我希望尽可能少地使用代码
附言。
好的,现在我可以让资产工作了
if (settings.debug) {
app.use(function(req, res, next) {
if (req.url.indexOf('/assets/') === 0) {
req.url = req.url.replace('/assets/', '/public/');
}
next();
});
}
app.use(require('./config/lessMiddlewareConfig.js')(__dirname));
app.use('/public', express.static(path.join(__dirname, 'public')));
但我想现在就拒绝访问public。在您的服务器上,是否确实需要使用较少的中间件 我解决了这个问题,购买并将其添加到我的部署shell脚本中:
curl http://localhost:3000/stylesheets/style.css > /dev/null
它通过直接向节点进程请求css文件来强制重新编译。在生产环境中,最好在开始时重新编译css,但在开发模式中,每次更改设计和刷新页面时,我都会强制编译。我的意思是,我可以编写做同样事情的代码,或者编写shell脚本,但不想浪费时间,因为这个项目只是一种爱好。然后在开发模式下,不要使用nginx来服务样式表文件夹。是的,所有文件夹现在都在开发中打开。看起来,在一些人质身上,我无法使用nginx,这限制了廉价人质的数量。