我試圖做一個相對簡單的設置與被代理的時候到本地主機,而不是虛擬主機: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