1

我是网络开发的新手,所以请耐心等待。尽管我进行了所有搜索,但我可能会遗漏一些东西。

当我打开一个 html 文件(当然是从 Apache 提供的目录)时,它会在浏览器中打开,但 url 是:

file:///C:/xampp/htdocs/path/to/file.html

这样它就不会由 Apache 提供服务,因此为了使其工作,我必须将路径的主机部分重命名为主机名。所以如果主机路径是

C:/xampp/htdocs/

然后我必须将 url 的那部分重命名为主机名,在这种情况下,如果 Apache 要为该页面提供服务,则"file:///C:/xampp/htdocs/path/to/file.html"必须重命名为。"localhost/path/to/file.html"

我尝试添加一个在其路径中包含“file:///”的虚拟主机,但这会使 Apache(和 xampp)崩溃。

问题:有没有办法在打开 Apache 提供的本地 html 文件时避免手动重命名 url?

4

3 回答 3

2

我知道这个线程已经有一段时间没有任何活动了,但我已经为这个场景创建了一个 Chrome 扩展。:)

名称是 Localhost Automate,它http://localhost根据预定义的文件夹将开发人员重定向到。

我希望有人会发现这很有用。:)

https://chrome.google.com/webstore/detail/localhost-automate/pplnfonehjimoddpmnhldhkgojhkjcfh

还有github repo;https://github.com/Ardethian/localhost_automate

享受 :)

于 2013-10-06T22:34:53.840 回答
1

对 chrome 做了一个小小的“url2hostname”扩展,每次我在 chrome 中打开本地 html 文件时,我可以节省 1.42 秒的 url 点击和重命名。我会把它写下来以保持一致性和重复性。

我为保管箱目录设置了一个虚拟主机。所以在 httpd-vhosts.conf 中:

<VirtualHost *>
    DocumentRoot "C:\Users\hns\Dropbox\Webb"
    ServerName localhost
    <Directory "C:\Users\hns\Dropbox\Webb>
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory> </VirtualHost>

因此"C:\Users\hns\Dropbox\Webb",我保留了许多只想在本地测试的网页(并且它们必须由 apache 提供才能正常工作)。当我在 chrome 中打开它们时,url 会变得混乱"file:///C:/Users/hns/Dropbox/Webb/f/index.html",例如。因此,在这种情况下,我必须选择"file:///C:/Users/hns/Dropbox/Webb"url 的 -part 并将其重命名为 servername,使其变为:"http://locahost/f/index.html"

因此,当我打开本地 html 文件并单击 chrome 扩展名时,它只会替换 url 中的路径和协议并转到生成的 url(然后正确加载):

chrome.browserAction.onClicked.addListener(function() { 

    chrome.tabs.query({'active': true, 'currentWindow': true}, function (tabs) {
        var currentURL = tabs[0].url;
        newURL = currentURL.replace("file:///C:/Users/hns/Dropbox/Webb", "http://localhost");
        chrome.tabs.update(tabs[0].id, {url: newURL});
    })
});

嘿,至少我学到了一些东西:)

编辑:

真正的问题不是 Apache,而是 Chrome 和跨源:

由于“同源策略”,有时网站内容无法在本地正常显示。–allow-file-access-from-files因此,在我的情况下,可以通过从带有类似or 标志的快捷方式启动 chrome 来关闭该策略来解决问题–disable-web-security

于 2013-05-07T20:50:58.593 回答
0

我找到了一种更好的方法,不需要扩展,并且适用于所有浏览器。

编辑 httpd-vhosts.conf 文件(在我的系统 E:\xampp\apache\conf\extra 并编辑 httpd-vhosts.conf)

添加以下行并保存文件,不要删除任何内容

"虚拟主机 *:80

服务器名称本地主机

ServerAlias 本地主机

DocumentRoot e:/xampp/htdocs //或任何你想要的链接//

/虚拟主机”

重启 Xampp

于 2019-01-10T19:10:31.093 回答