【问题标题】:DRUPAL 7 - Clean URL and relative path : it's doesn't workDRUPAL 7 - 清理 URL 和相对路径:它不起作用
【发布时间】:2014-07-18 07:12:36
【问题描述】:

我从 Drupal 开始,我已经阅读了一些关于我的问题的主题,但我没有找到解决方案。 我的问题如下:

在我的网站上(目前在 localhost)我使用 Clean URLS 模块。问题是当我启用这个模块并且当我使用我的文件的相对路径时,我的图片或链接不起作用。

例如:src="./sites/default/files/styles/large/public/add_tool_version.png".我的图片不可见..我不知道为什么这个模块不适用于相对路径。

但是当我禁用模块时,链接工作正常。 拜托,你能帮帮我吗?你有解决办法吗?

提前感谢您的回答

【问题讨论】:

  • 我使用路径 :../sites/default/files/styles/large/public/add_tool_version.png 进行测试,它可以工作!但是现在,我没有我编辑链接的预览。你知道为什么吗?提前致谢

标签: drupal drupal-7 relative-path clean-urls


【解决方案1】:

尝试使用绝对路径。在您使用图像的情况下,它将类似于: src="/sites/default/files/styles/large/public/add_tool_version.png",不带点。

此绝对路径将始终引用该图像而不是相对路径 - 它取决于您当前的目录或页面。

【讨论】:

  • 没有点它不起作用。但是用 2 个点就可以了。你知道为什么吗?
  • 感谢您的回答
  • 你能告诉我,当你按照我的建议使用路径时,整个 url 看起来如何?
  • 也许你在settings.php中的base_url有问题,对吗?
  • 是的,问题出在setting.php文件上!非常感谢您的帮助
【解决方案2】:

干净 url 的问题在于浏览器读取 url 并将它们解释为文件目录中的方向的方式。假设您在http://www.example.com/?q=node/11,或者启用了干净的网址,在http://www.example.com/node/11

当启用干净的 url 并将带有源的链接放入某个节点时,您的浏览器将在您的 url 中指定的文件夹中搜索您的文件。因此,当您将源声明为sites/default/files/styles/large/public/add_tool_version.png 并且位于URL http://www.example.com/node/11 上时,浏览器将在目录node/11/sites/default/files/styles/large/public/ 中查找文件。通常这会起作用,但在 drupal 中,实际上没有这样的文件夹。所有的 drupal 页面都只是你基本目录中 index.php 的版本。在 drupal 中,url 与文件结构没有任何关系——不幸的是,普通浏览器不知道这一点。

但是,如果没有干净的 url,您的浏览器会将 url识别为基本路径 (www.example.com) 和查询 (?q=node/11) 的组合。因此,它将从您的基本路径中指定的目录开始查找您的文件。

如果您仍然希望启用使用干净 url 的相对路径,您可以在实际源代码前面使用函数 base_path()

【讨论】:

  • 注意:因此,浏览器有时会在在 drupal 站点上找到指向他们无法识别的路径的链接时感到困惑。请注意,这与 drupal 如何在内部处理 url 无关:drupal 将读取并正确处理任何 url 作为基本路径和查询的组合,并显示适当的内容。只有当内容本身包含一些链接时,才会出现问题:在正确传递了包含链接的页面 html 后,drupal 会离开页面,让浏览器实际查找链接源。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-06
  • 1970-01-01
  • 2017-07-12
  • 1970-01-01
  • 2016-08-20
  • 2013-02-19
  • 2015-08-30
相关资源
最近更新 更多