0

关于stackoverflow的第一篇文章!

一直在这几个小时,无法弄清楚。

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:\wamp\www\groovysite.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在此处的回答。

完全难倒......任何帮助将不胜感激!

4

1 回答 1

1

几个建议

这条线

DocumentRoot "c:\wamp\www\groovysite.net"

应该

DocumentRoot "c:/wamp/www/groovysite.net"

它不是解决方案,但您应该使用 unix 分隔符而不是 dos 分隔符。

最重要的是,您应该使用您在虚拟主机定义中创建的域名运行站点,即

http://groovysite.net 
or 
http://www.groovysite.net` 

并不是

`http://localhost/groovysite.net`

这就是创建虚拟主机的全部意义所在!如果您不这样做,那么 Apache 将不会获取虚拟主机定义并且不会使用正确的 DocumentRoot,因此会错误地添加到您的链接中。

此外,这篇文章可能更完整,请查看底部标题为“如何打开其他“我的虚拟主机”菜单?

还要确保您没有遵循任何建议更改\wamp\www\index.php将行修改为

$suppress_localhost = false;

如果您将其保留为

$suppress_localhost = true;

然后,随着您的虚拟主机定义,WAMPServer 主页上的项目链接应该正确启动您的虚拟主机,而不是添加localhost到 url 的前面。

于 2014-12-09T15:38:49.143 回答