我的Windows 10 pc已安装xampp。我将它用于多个项目,因此我的文件夹结构类似于:
xampp
|-htdocs #dummy localhost
|-htdocs-projecta
|-htdocs-projectb
|-etc
我已经设置了http-vhosts.conf
文件和hosts
文件,这样当我转到projecta.dev
或projectb.dev
时,apache会返回正确的网站。
我已将我的电脑设置为充当wifi热点并将我的iphone连接到热点。我已经在我的iphone上配置了wifi连接,以便我的电脑充当代理。这意味着当我在手机上转到projecta.dev
时,我可以通过计算机查看该网站。
这是我遇到问题的地方 - 使用这种方法,我只能看到我计算机上的网站(即我无法从其他网站下载资源 - 例如jQuery或Google Analytics)。
如何设置我的电脑和iPhone,以便我可以从我的手机上访问电脑上的本地项目域,以及定期上网下载其他脚本?
[编辑] 更多信息:
我的vhosts文件配置如下:
<VirtualHost *:80>
DocumentRoot "C:\xampp\htdocs\"
ServerName localhost
<Directory C:\xampp\htdocs>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:\xampp\htdocs-projecta\public_html"
ServerName projecta.dev
<Directory C:\xampp\htdocs-projecta>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:\xampp\htdocs-projectb"
ServerName projectb.dev
<Directory C:\xampp\htdocs-projectb>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
...
我的主机文件是:
127.0.0.1 projecta.dev
127.0.0.1 projectb.dev
...
当我从手机访问project-a.dev
时,它会加载网站,不包括第三方资源(例如Google字体和jQuery)。当我去谷歌时,它加载我的本地主机,其他页面/文件夹返回404.这使我认为问题在于vhosts配置 - 它找不到匹配的服务器名称并且正在加载默认的本地主机。
所以我将<VirtualHost *:80>
更改为<VirtualHost projecta.dev:80>
,但这没有效果。我还添加了Listen projecta.dev:80
,但这也有效。
如何设置vhost以忽略vhosts文件/ ServerNames中的所有请求?
答案 0 :(得分:0)
首先,您可以在连接到wifi热点后检查您的iPhone是否能够连接到任何网站,例如www.google.com
如果是,但仍然无法连接,可以通过试用笔记本电脑检查jquery脚本的链接是否正确。如果手机出现同样的问题,则检查元素并检查脚本是否成功下载。有时,我们可能会错误地放置jquery链接。
如果一切正常但iPhone仍然无法下载,我想你可以下载那些jquery脚本并与你的项目一起放入htdoc文件夹。实际上这种方式可以节省很多时间。
希望这可以帮到你!
答案 1 :(得分:0)
我设置了我的iphone以获得所有请求的个人代理连接。
我必须要做的是在我的电脑上创建一个.pac文件,这样,根据请求,它会告诉我的iphone是作为代理访问我的电脑还是直接连接到资源。
这是我的proxyfile.pac:
function FindProxyForURL(url, host)
{
//localhost projects
if (dnsDomainIs(host, "projecta.dev")) return "PROXY 192.168.1.87:81";
if (dnsDomainIs(host, "projectb.dev")) return "PROXY 192.168.1.87:82";
//... etc
//everything else
return "DIRECT";
}
正如你所看到的,我现在告诉我的iphone使用我的电脑将特定网址代理到同一个ip上的不同端口。如果我将它设置为端口80,那么他们都将访问我的默认localhost而不是他们应该加载的网站。这意味着我也更新了我的vhosts文件:
<VirtualHost *:80>
DocumentRoot "C:\xampp\htdocs-projecta\public_html"
ServerName projecta.dev
<Directory C:\xampp\htdocs-projecta>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Listen 81
<VirtualHost *:81>
DocumentRoot "C:\xampp\htdocs-projecta\public_html"
ServerName projecta.dev
<Directory C:\xampp\htdocs-projecta>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
对于每个项目,我复制/粘贴VirtualHost
块,更改端口并添加Listen
命令。
通过此设置,我现在可以访问我的电脑和iphone http://projecta.dev
以及一般的互联网(例如http://google.com
),以便我可以根据需要下载外部资源(如jQuery,谷歌字体等)。