在本地环境下处理相对URL

3

我一直有一个习惯 - 直接在活动域或子域上工作。现在我发现了在本地主机上工作的魅力和速度。我正在使用Windows机器上的Wamp服务器。

我的项目存储在C:/wamp64/www/[project_name]中。

我一直以来都使用相对URL,无论是在源文件中还是直接在我的WordPress网站中。例如,对于图片使用这个URL: "/wp-content/uploads/2018/image.png" 在每个域上都可以工作,对于页面或文章也是同样适用。

然而,在本地主机上,这个URL指向C:/wamp64/www/wp-content/...,因此我必须使用这个URL:"/project_name/wp-content/..."。但是,在迁移到活动域后,它不起作用。

我尝试运行SQL REPLACE查询,但仍然有很多URL指向本地目录(主要是存储在主题设置中的URL)。

什么是处理相对URL的最佳方法,既可以在本地主机上工作,又可以在活动域上工作?


我更喜欢在整个项目中使用<base>标签。当迁移到服务器时,您只需要更新基础即可。 - Ali Sheikhpour
只需更改本地 WP 虚拟主机(httpd-vhosts.conf)的文档根目录,使得相对目录结构在本地和线上是相同的,然后您就可以继续使用以 / 开头的 URL,一切都很好。 - CD001
3个回答

3
似乎您在WAMP中的虚拟主机设置上遇到了问题。 设置虚拟主机的指南可以帮助您解决问题。
一旦您设置好虚拟主机,就可以将文档根目录设置为任何URL。这将允许您使用特定名称来代替每次都使用完整路径的本地(例如kritianfilo.local)。这也将修复相对URL的问题,因为一切都将与您在虚拟主机设置中设置的文档根目录相关。

太棒了,运作得非常好!我是新手,抱歉。 - Kristián Filo
不必道歉,这是我们所有人学习的方式! - Tom Esposito

0

尝试使用相对路径,但是这样写: "../wp-content/uploads/2018/image.png"

不要以“/”开头的相对路径,因为这意味着您的站点将位于路径的顶部:“http://Examlple.com”。由于WordPress可以安装在子路径中,因此它无法在“http://Example.com/OtherSite/”中工作。

因此,请始终相对于实际页面而不是顶级页面进行思考。


0
一种方法是创建一个配置文件或系统属性文件,其中包含所有与系统相关的变量,并在应用程序需要时查询它。
在本地环境中,可以插入 WAMP/Windows 的绝对路径,在开发/生产环境中,可以使用相对路径(或绝对路径)。
这个方法很好用,但你必须记得在每次部署时设置正确的值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接