我试图做一个相对简单的设置与被代理的时候到本地主机,而不是虚拟主机:WordPress的重定向通过的WebPack开发服务器
- 一个Apache服务器的HTML虚拟主机。
- Webpack和Webpack Dev Server用于资产重新加载和生成。
要完成此操作,Webpack Dev Server proxies
其他服务器要通过它不知道如何处理的请求。
使用基本的Python服务器(工作):
- 上http://localhost:5000启动蟒蛇网络服务器。
- 运行npm start。
- Webpack Dev Server使用http://localhost:9090启动并代理python服务器。
- 访问http://localhost:9090并查看python服务器加Webpack资产的HTML结果。
使用Apache服务器:
- 启动Apache服务器。
- 运行npm start。
- Webpack dev服务器启动并使用http://localhost:9090代理Apache服务器。
- 访问本地主机:9090浏览器自动重定向到http://localhost并显示“It works!”。
如果我在浏览器中单独访问http://vhost.name,我会看到正确的HTML。我的环境是默认的Apache Server版本:Mac OSX El Capitan上的Apache/2.4.16(Unix)。
的package.json
"scripts": {
"test": "node server.js",
"start": "npm run start-dev-server",
"start-dev-server": "webpack-dev-server 'webpack-dev-server/client?/' --host 0.0.0.0 --port 9090 --progress --colors",
"build": "webpack"
},
webpack.config.js
/*global require module __dirname*/
var webpack = require('webpack');
module.exports = {
entry: {
app: [
'webpack-dev-server/client?http://localhost:9090',
'webpack/hot/only-dev-server',
'./src/app.js'
]
},
output: {
path: __dirname + '/dist',
filename: '[name]_bundle.js',
publicPath: 'http://localhost:9090/dist'
},
devServer: {
historyApiFallback: true,
proxy: {
// Python server: works as expected at localhost:9090
// '*': 'http://localhost:5000'
// Apache virtual host: redirects to localhost instead of
// serving localhost:9090
'*': 'http://vhost.name'
}
},
plugins: [
new webpack.HotModuleReplacementPlugin()
]
};
的httpd-vhosts.conf
<VirtualHost vhost.name:80>
DocumentRoot "/Path/To/vhost.name"
ServerName vhost.name
<Directory "/Path/To/vhost.name">
Options FollowSymLinks Indexes MultiViews
AllowOverride All
# OSX 10.10/Apache 2.4
Require all granted
</Directory>
</VirtualHost>
个主机
127.0.0.1 localhost
127.0.0.1 vhost.name
我的浏览器同步安装在我的电脑上,如果我运行浏览器同步启动--proxy http://vhost.name并访问http:// localhost:3000然后它工作正常。撕裂我的头发...... – mummybot
观看Chrome工具或Charles流量代理中的网络流量,http://vhost.name:9090正在执行301 Moved Permanently,然后浏览器会解释为尝试不带端口的本地主机。根据这个评论(http://serverfault.com/a/361324)“在你的Apache配置中查找两件事:Redirect和带有R标志的RewriteRule指令,如果这些指令不在位,那么Apache不是'不要做重定向“。虚拟主机实际上指向一个WordPress站点使用以下标准的重写规则: – mummybot