CMS:如何最好地处理内部URL


CMS: How to handle internal URLs best?

我想什么可能是处理内部链接的最佳方式。

目前,我只是将完整的URL粘贴到所见即所得编辑器中,并在内容插入数据库之前将其替换为占位符。

ROOT_URL = "http://localhost/projectname/";
$content = Helper::replace_all(ROOT_URL, "{{{ROOT_URL}}}", $content); // custom

在输出内容之前,占位符将被当前ROOT_URL替换。

$content = Helper::replace_all("{{{ROOT_URL}}}", ROOT_URL, $content); // custom

它很好用,但我想知道你的最佳做法。你将如何处理这个问题?

提前感谢!

我脑海中有几个选项:

  • 您可以为wysiwyg编辑器构建一个自定义链接选择器,该编辑器将使用ROOT_URL并将其直接插入到wysiwygEditor中。(我们在我工作的公司这样做)
  • 您可以在任何地方使用相对URL,并将您的ROOT_URL输出到网站上的<base>标签中。(这个技巧有点争议,但我个人非常喜欢)
  • 您可以在开发时将HOSTS文件设置为使用实际域名(因此更类似于生产环境),并使所有路径都是绝对的。没有上面的解决方案那么通用,但被更广泛地接受
  • 像现在这样使用占位符

就我个人而言,我认为最好的解决方案肯定是第一个,因为第二个、第三个和第四个解决方案需要用户理解链接的构建方式。第一种解决方案的巨大缺点是,当域更改时,您的内容中有硬编码的链接。或者,你也可以让自定义链接选择器插入一个占位符,这可能会更好。(其余保持不变)。第二种和第三种解决方案可能是最简单的集成和实际使用。