快递和连接资产经理

我正在尝试使用express -expressmanager 。 显然,我不明白如何调整基于连接的示例到一个快速应用程序。

我把这个由快速命令行创build的框架应用程序(滚动到底部以查看我运行的命令),并尝试将它合并到connect-assetmanager主页的示例中。 这是我的app.js:

var express = require('express') , routes = require('./routes') , assetManager = require('connect-assetmanager'); var assetManagerGroups = { 'css': { 'route': /\/static\/css\/[0-9]+\/.*\.css/ , 'path': './public/stylesheets/' , 'dataType': 'css' , 'files': [ 'style.css', 'style2.css' ] } }; var assetsManagerMiddleware = assetManager(assetManagerGroups); var app = module.exports = express.createServer(); app.configure(function(){ app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(assetsManagerMiddleware); app.use(express.static(__dirname + '/public')); app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); app.get('/', routes.index); 

然后,我修改了layout.jade,使其样式表参考点指向资产pipe理器路由:/static/css/style.css

欢迎页面加载(减去任何样式),并在铬开发工具,我看到上述CSSpath失败的请求。 节点命令窗口中没有错误。 我是否用错误的方法来连接资产pipe理器中间件来表示? 还是像正确读取示例正则expression式一样愚蠢?

作为参考,这是我跑来创build示例应用程序:

 # using 2.5 since that's what the larger app is based on sudo npm install -g express@2.5.x # create the sample express app express expressAssetTest cd expressAssetTest # add connect-assetmanager to the dependencies echo '{ "name": "expressAssetTest" , "version": "0.0.1" , "private": true , "dependencies": { "express": "2.5.11" , "jade": ">= 0.0.1" , "connect-assetmanager": ">= 0.0.3" } }' > package.json # add a 2nd stylesheet for testing purposes echo ".mycssclass { top: 0; }" > public/stylesheets/style2.css sudo npm install 

我的设置是类似的,试图将connect-assetmanager与机车集成。 我有我的JavaScript合并相同的问题。 我通过改变路由正则expression式来工作

 'route': /\/static\/javascripts\/[0-9]+\/.*\.js/ 

 'route': /\/static\/javascripts\/script\.js/ 

并从我的布局模板调用/static/javascripts/script.js

我不知道为什么这个例子有这个特定的正则expression式,更合适的可能是这样的:

 'route': /\/static\/javascripts\/[^/?*:;{}\\]+\.js/ 

基于这里的build议:正则expression式find有效的文件名