堆栈溢出的第一篇文章!
在这里呆了几个小时,想不通。
Wamp 安装在 C:\wamp,网站在 C:\wamp\www\groovysite.net 中,并显示在我的浏览器中 localhost/groovysite.net。
有一个子文件夹 groovysite.net/subfolder。问题是子文件夹中包含的页面中的所有相对 url 都将子文件夹添加到根文件夹之后的 url 路径中。
例如,两个样式表位于
C:/wamp/www/groovysite.net/stylesheets/app.css
C:/wamp/www/groovysite.net/style.css
在我的网站脑海中是
<link rel="stylesheet" href="stylesheets/app.css" />
<link rel="stylesheet" href="style.css">
在 hompepage groovysite.net/index.html url 路径是
localhost/groovysite.net/stylesheets/app.css
localhost/groovysite.net/style.css
所以他们工作。但是在 subfolder/page.html 路径上是
localhost/groovysite.net/subfolder/stylesheets/app.css
localhost/groovysite.net/subfolder/style.css
所以看起来 WAMP 将子文件夹路径粘贴到相对 url 上。
我读到设置虚拟主机会指导 WAMP 为每个虚拟主机找到正确的文档根目录,这将解决这个问题。为此,这是我在 apache 2.4.9 上的当前配置:
主机文件:
127.0.0.1 localhost
::1 localhost
127.0.0.1 groovysite.net
::1 groovysite.net
httpd.conf 虚拟主机行未注释
httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "c:/wamp/www"
ServerName localhost
ServerAlias localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
<Directory "c:/wamp/www">
AllowOverride All
Options Indexes FollowSymLinks
Require local
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "c:wampwwwgroovysite.net"
ServerName groovysite.net
ServerAlias www.groovysite.net
ErrorLog "logs/groovysite.net-error.log"
CustomLog "logs/groovysite.net-access.log" common
<Directory "c:/wamp/www/groovysite.net">
AllowOverride All
Options Indexes FollowSymLinks
Require local
</Directory>
</VirtualHost>
代码取自RiggsFolly的答案。
完全难倒了...任何帮助将不胜感激!
几个建议
此行
DocumentRoot "c:wampwwwgroovysite.net"
应该是
DocumentRoot "c:/wamp/www/groovysite.net"
它不是解决方案,但您应该使用 unix 分隔符而不是 dos 分隔符。
最重要的是,您应该使用在虚拟主机定义中创建的域名来运行站点,即
http://groovysite.net
or
http://www.groovysite.net`
而不是
`http://localhost/groovysite.net`
这就是创建虚拟主机的全部意义所在!如果不这样做,那么 Apache 将不会选取虚拟主机定义,也不会使用正确的 DocumentRoot,因此会错误地添加到您的链接中。
此外,这篇文章可能更完整,请查看底部标题为如何打开其他"我的虚拟主机"菜单的部分?
还要确保您没有遵循任何建议更改wampwwwindex.php
以将行修改为
$suppress_localhost = false;
如果您将其保留为
$suppress_localhost = true;
然后,定义虚拟主机后,WAMPServer主页上的项目链接应正确启动虚拟主机,而不是将localhost
添加到URL的前面。