gpt4 book ai didi

node.js - 表达和连接 Assets 管理器

转载 作者:搜寻专家 更新时间:2023-10-31 23:14:11 24 4
gpt4 key购买 nike

我正在尝试使用 connect-assetmanager与 express 。显然我不明白如何使基于连接的示例适应 Express 应用程序。

我采用了由 express 命令行(滚动到底部以查看我运行的命令)创建的骨架应用程序,并尝试将来自 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 使其样式表引用指向 Assets 管理器路由:/static/css/style.css

欢迎页面加载(减去任何样式)并且在 chrome 开发工具中我看到对上述 css 路径的请求失败。 Node 命令窗口中没有错误。我是否使用了错误的方法来连接 Assets 管理器中间件来表达?还是像错误地阅读示例正则表达式这样的愚蠢行为?

作为引用,这是我创建示例应用程序所运行的:

# 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 与 locomotive 集成.我的 javascript 合并遇到了同样的问题。我通过更改路由正则表达式来让它工作

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

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

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

我不确定为什么这个例子有那个特定的正则表达式,更合适的可能是这样的:

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

基于此处的建议:Regex for finding valid filename

关于node.js - 表达和连接 Assets 管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11938434/

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