有没有办法让Stylus使用src和destpath不包含“stylesheets”目录?
我最近开始使用Node和Stylus,并遇到这个问题。 我想保留我生成的CSS在/ public / css中,而不是/ public / stylesheets,似乎Stylusconfiguration选项将不会允许。
// ... your middleware here app.use(stylus.middleware({ src: __dirname + '/views', // .styl files are located in `views/stylesheets` dest: __dirname + '/public', // .styl resources are compiled `/stylesheets/*.css` compile: function(str, path) { return stylus(str) .set('filename', path) .set('warn', true) .set('compress', true); } }));
上述代码中的注释来自Stylus示例。 对于src和dest属性,“/ stylesheets”会自动添加(如原始示例中的注释所示)。 这似乎是不必要的,我想我想知道如果只有一种方法可以closures。
这是不可能的,从我从第128号拉请求中收集到的信息。 解决方法是嵌套一个额外的目录来匹配由中间件生成的path,这似乎比问题本身更丑陋。
假设你的HTTP请求path是/css/file.css
,你的目录结构应该是这样的:
/view/stylesheets/css/*.styl /public/css/*.css
你的中间件configuration应该是这样的:
debug: true, // Set this flag to see what the middleware is doing src: __dirname + '/views/stylesheets', dest: __dirname + '/public',
(我没有试过这个,但是要指出中间件的期望。)
你有没有尝试过:
src: __dirname + '/views/stylesheets', dest: __dirname + '/public/css',
看代码: https : //github.com/LearnBoost/stylus/blob/master/lib/middleware.js
这应该作为手写笔文件相对path(到src目录)不再包含样式表。 本身没有附加物。
我面临着同样的问题。 我用src
作为函数..例如:你的http请求path是
GET /css/style.css
然后replace/css
并findstylesheets
文件夹。
app.use(stylus.middleware({ src: function( path ){ // print it for debug console.log( path ); return require('path').join( __dirname + '/views/stylesheets', path.replace('/css' ,'').replace('.css', '.styl') ); }, dest:__dirname + '/public' , debug: true, ...
它会在文件夹__dirname + '/public/css/
要么
在__dirname + '/views/stylesheets'
下创build一个文件夹css
, __dirname + '/views/stylesheets'
*.styl
文件移动到其中
app.use(stylus.middleware({ src: __dirname + '/views/stylesheets', dest:__dirname + '/public' , debug: true, ...