gpt4 book ai didi

python - 使用相对 URL

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:21 25 4
gpt4 key购买 nike

我用 Python 使用 cherrypy 和 Mako 编写了一个简单的网络应用程序。所以,我的问题也很简单。我有一页 URL http://1.2.3.4/a/page_first .在 URL http://1.2.3.4/a/page_first/my_image.png 上还有一张图片可用.我想在 page_first 上找到 my_image.png。我添加了一个标签 <img src="my_image.png"/> , 但未显示。我查看了 Web 开发人员工具-> 网络,看到图像的请求 URL 是 http://1.2.3.4/a/my_image.png , 而不是 http://1.2.3.4/a/page_first/my_image.png .

为什么会这样?

谢谢。

最佳答案

页面地址需要为http://1.2.3.4/a/page_first/ (带尾部斜杠)。

已添加:

你好像不太理解相对URL,那我解释一下。当您引用这样的图像时 <img src="my_image.png"/> ,标签中的图像 URL 没有任何主机/路径信息,因此路径取自引用图像的 HTML 页面的地址。由于路径是最后一个斜杠之前的所有内容,因此在您的情况下它是 http://1.2.3.4/a/ .因此浏览器将请求的完整图像 URL 变为 http://1.2.3.4/a/my_image.png .

你希望它是 http://1.2.3.4/a/page_first/my_image.png , 所以 HTML 页面的路径部分必须是 /a/page_first/ .

注意浏览器不会假定page_first是“目录”只是因为它没有“扩展名”,并且不会自动添加尾部斜杠。当您访问发布静态目录和文件的服务器并为路径指定目录名称并省略尾部斜杠(例如 http://www.example.com/some/path/here )时,服务器能够确定您实际请求的目录,并添加斜杠(和通常也是默认/索引文件名)。对 URL 进行编程的动态网站通常不是这种情况。

所以基本上您需要在页面路径中显式包含尾部斜杠:dispatcher.connect('page','/a/:number_of_page/', controller=self, action='page_method')并始终用尾部斜杠 ( http://1.2.3.4/a/page_first/ ) 引用它,否则路由将不会匹配。

作为旁注,通常您将图像和其他静态文件放入专用目录并使用 CherryPy 的静态目录工具为它们提供服务,或者,如果它是高负载站点,则使用专用服务器。

关于python - 使用相对 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20421001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com