您对 URL 或一般文件系统中使用的相对路径和绝对路径缺乏了解。让我从别的地方开始:
- 不要将图像放在 CSS 文件夹中。默认 cakephp 烘焙应用程序中已经以小写形式存在的 css 文件夹用于存储 CSS 文件。不多也不少。图像属于 webroot 目录中的“img”文件夹。
- 您应该始终对 url 以及 webroot 中的目录和文件使用完整的小写字母,无论它是不是蛋糕。这是因为大多数优秀的虚拟主机操作系统(如 Debian)都是基于 linux 的,这在大小写书写方面有所不同。唯一不这样做的操作系统是 Windows(据我所知)。我知道你在 Windows 上编码,这就是为什么你现在所有的乱码都能正常工作,但如果你把它放在某个地方,它通常是你正在处理的基于 Linux 的服务器,你可以重写一半的应用程序视图。
- 罗斯解决方案是正确的,但它与该列表的第一点冲突,它说将图像放在“img”目录中。对于路径,您应该始终使用 CakePHPs 内置解决方案。通过这种方式,您可以确保应用程序在任何时候都不会崩溃,即使您可以将其放在子目录中,或者将其托管在一些愚蠢的系统上,比如一些德国主机商的系统……这里没有名字。
给你的问题:关于路径,你需要了解一些事情。有绝对路径。它们提供了从文件系统根目录到您想要的位置的信息:例如:/var/www/somefolder/someapp/webroot/index.php (Linux)
C:\www\somefolder\someapp\webroot\index。 php (视窗)
当您深入文件系统或在您可能甚至不知道您的绝对路径相对路径是“发明”的环境中时,为了使这更容易处理。假设您在上面指定的目录中,并且想要访问或包含应用程序的“Config/core.php”:../Config/core.php (Linux) ..\Config\core.php (Windows -这里没有什么特别的,除了斜杠是反斜杠)
这基本上是:回到“webroot”的父目录,在这种情况下是“/var/www/somefolder/someapp/”(Linux)和Windows“C:\www\somefolder\someapp\”。从那里我们将再次前进到“Config”文件夹,然后访问 core.php。
此架构也适用于 url。例如www.example.com/pages/imprint/。通常,服务器会在您的主机的 webroot 中搜索文件夹“页面”。在那里它会搜索一个文件夹“印记”。之后,根据您的服务器配置,它会在该文件夹中搜索“index.html”或“index.php”或您建议服务器用作索引文件的其他文件。或者它可以只输出文件夹的内容。
使用“[application]/webroot/”文件夹中的 .htaccess 文件,此行为将被重定向到 CakePHP 的 index.php 文件。Cake 正在分析 url 并检查是否有任何有效的控制器操作或路由,然后为它运行适当的代码。但!此规则不适用于 webroot 目录中的实际文件或文件夹。(查看 webroot 文件夹中的 htaccess 文件并在 google 中查找其中使用的命令)。这就是为什么如果您使用正确的语法,可以毫无问题地交付 css 文件。由于 CakePHP 对其 url 使用文件夹 url 语法,因此给出相对 url 是一个问题,因为它们大多数时候只适用于一个特定页面。例如/pages/imprint ../img/blabla.gif将返回 webroot 并显示特定图片,因为要使用的 url 将是“webroot/img/blabla.gif”。但是在同一个应用程序/products/view/1中,路径../img/blabla.gif最终会出现在不是实际文件的“webroot/products/img/blabla.gif”中,cakephp 会尝试处理它并它会失败,因为 url 无效。
我希望这会有所帮助。
多检查一下这些路径。了解这些对于编程至关重要,当时它对我帮助很大;)
问候 func0der