gpt4 book ai didi

javascript - Grunt 连接 + modRewrite

转载 作者:行者123 更新时间:2023-12-02 17:52:02 24 4
gpt4 key购买 nike

这个问题很容易解释。我目前有两个版本的连接任务,一个与 grunt-contrib-proxy 一起使用,另一个与 modRewrite 一起使用。但我需要同时使用两者。

这样,如果加载了某些“路由”选择: ['/login', '/ord'] 我需要代理请求,但如果加载了其他内容,我需要重定向到/index .html。原因是我使用的是backbone.js,所以 localhost:8000/fun 应该加载backbone中的fun路由。

以下所有连接任务都运行良好(独立)。

TL;DR 我如何组合这些连接任务:

connect: {
server: {
options: {
port: 9001,
middleware: function(connect, options) {
var middlewares, proxy;
proxy = require('grunt-connect-proxy/lib/utils').proxyRequest;
middlewares = [proxy, connect["static"](options.base), connect.directory(options.base)];
return middlewares;
}
},
proxies: [
{
context: ['/login', '/ord'],
host: '10.10.1.13',
https: false
}
]
}
}

connect: {
server: {
options: {
port: 9001,
open: true,
base: ['./'],
middleware: function(connect, options) {
var middlewares;
middlewares = [];
middlewares.push(modRewrite(['^[^\\.]*$ /index.html [L]']));
options.base.forEach(function(base) {
return middlewares.push(connect["static"](base));
});
return middlewares;
}
}
}
}

如果您愿意的话,这里有咖啡:

connect:
server:
options:
port: 9001
# keepalive: true
middleware: (connect, options) ->
proxy = require('grunt-connect-proxy/lib/utils').proxyRequest
middlewares = [
proxy
connect.static(options.base)
connect.directory(options.base)
]
middlewares
proxies: [
{
context: ['/login', '/ord']
host: '10.10.1.13'
https: false
}
]

connect:
server:
options:
port: 9001
open: true
base: ['./']
middleware: (connect, options) -> (
middlewares = []
middlewares.push(modRewrite(['^[^\\.]*$ /index.html [L]']))
options.base.forEach( (base) ->
middlewares.push(connect.static(base))
)
middlewares
)

非常感谢。

最佳答案

This article was helpful in solving my issues.

咖啡溶液:

connect:
server:
options:
port: 9001
base: './'
# keepalive: true
uselessMiddleware: (req, res, next) ->
next()
middleware: (connect, options) ->
# same as in grunt-contrib-connect

directory = options.directory || options.base[options.base.length - 1]
if (!Array.isArray(options.base))
options.base = [options.base]

# custom middleware
proxy = require('grunt-connect-proxy/lib/utils').proxyRequest
middlewares = [
# proxy
proxy
connect.static(options.base[0])
connect.directory(options.base[0])
# mod rewrite
modRewrite(['^[^\\.]*$ /index.html [L]'])
connect.static(options.base[0])
]

# same as in grunt-contrib-connect
options.base.forEach( (base) ->
middlewares.push(connect.static(base))
)
middlewares.push(connect.directory(directory))
middlewares

proxies: [
{
context: ['/login', '/UserData', '/logout']
host: '10.10.1.13'
https: false
}
]

关于javascript - Grunt 连接 + modRewrite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21271868/

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