WAMP 相对 url 在子文件夹中查找,虚拟主机设置问题



堆栈溢出的第一篇文章!

在这里呆了几个小时,想不通。

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的前面。

最新更新