DRUPAL 7-清理URL和相对路径:it';s不';行不通

DRUPAL 7-清理URL和相对路径:it';s不';行不通,drupal,drupal-7,relative-path,clean-urls,Drupal,Drupal 7,Relative Path,Clean Urls,我从Drupal开始,读了一些关于我的问题的主题,但我没有找到解决方案。 我的问题如下: 在我的网站上(目前在localhost中),我使用CleanURL模块。问题是当我启用此模块时,当我使用文件的相对路径时,我的图片或链接不起作用 例如:src=“./sites/default/files/styles/large/public/add_tool_version.png”。我的图片不可见。。我不知道为什么这个模块不能使用相对路径 但当我禁用该模块时,链接工作正常。 请问,你能帮我吗?你有什么

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

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

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

但当我禁用该模块时,链接工作正常。 请问,你能帮我吗?你有什么解决办法吗


提前感谢您的回答

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


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

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

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

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


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

我使用以下路径进行测试:../sites/default/files/styles/large/public/add\u tool\u version.png,它可以工作!但是现在,我没有预览我编辑的链接。你知道为什么吗?提前谢谢没有dot它就不行了。但是有两个点就行了。。你知道为什么吗?谢谢你的回答。你能告诉我,当你按照我的建议使用路径时,整个url与图像的关系如何吗?也许你在settings.php中的基本url有问题。它正确吗?是的,问题在于setting.php文件!非常感谢您的帮助NB:所以当浏览器在drupal站点上找到指向他们无法识别的路径的链接时,有时会感到困惑。请注意,这与drupal如何在内部处理url无关:drupal将读入并正确处理任何url,作为基本路径和查询的组合,并显示适当的内容。只有当内容本身包含一些链接时,才会出现问题:在正确交付包含链接的页面html后,drupal将其手从页面上移开,让浏览器实际查找链接的源。