为什么 Image 标签不接受 # 作为 src?
Why Image tag doesn't accept # as src?
有人可以解释为什么这样的文件名 returns 是错误的吗?
<img alt="" src="uploads/#hje-bubble-wrap-factory.jpeg">
除其他外,#(散列)字符是需要特殊编码才能使 url 被视为安全的字符。 img
html 元素需要 src
属性 url 才能安全工作,因此出现错误。
这通常通过 URL 编码来解决,它将不安全的 ASCII 字符替换为“%”后跟两个十六进制数字。
<img alt="" src="uploads/%23hje-bubble-wrap-factory.jpeg">
希望对您有所帮助。
img
element expects either an absolute or relative URL to a valid, supported image file. URL syntax 的 src
属性 将 #
之后的任何内容定义为片段标识符。
因此,在您的示例中,只有 uploads/
被视为文件路径,而 #hje-bubble-wrap-factory.jpeg
段被解析为片段标识符。
片段是 HTML 或 XML 文档中的指定部分,因此浏览器将尝试解析 URL 路径 (uploads/
),然后定位该文件中的片段 (#hje-bubble-wrap-factory.jpeg
)。但是,由于 uploads/
处没有文件,HTTP 响应可能来自服务器 HTML(或根本没有),无法显示为图像 ;)
如果您的文件名实际上包含 #
,您可以对其进行编码,但是不建议对文件名使用特殊字符。
请注意,片段标识符在 src
属性 中完全有效。您可以将该技巧用于各种 fun things with SVGs.
有人可以解释为什么这样的文件名 returns 是错误的吗?
<img alt="" src="uploads/#hje-bubble-wrap-factory.jpeg">
除其他外,#(散列)字符是需要特殊编码才能使 url 被视为安全的字符。 img
html 元素需要 src
属性 url 才能安全工作,因此出现错误。
这通常通过 URL 编码来解决,它将不安全的 ASCII 字符替换为“%”后跟两个十六进制数字。
<img alt="" src="uploads/%23hje-bubble-wrap-factory.jpeg">
希望对您有所帮助。
img
element expects either an absolute or relative URL to a valid, supported image file. URL syntax 的 src
属性 将 #
之后的任何内容定义为片段标识符。
因此,在您的示例中,只有 uploads/
被视为文件路径,而 #hje-bubble-wrap-factory.jpeg
段被解析为片段标识符。
片段是 HTML 或 XML 文档中的指定部分,因此浏览器将尝试解析 URL 路径 (uploads/
),然后定位该文件中的片段 (#hje-bubble-wrap-factory.jpeg
)。但是,由于 uploads/
处没有文件,HTTP 响应可能来自服务器 HTML(或根本没有),无法显示为图像 ;)
如果您的文件名实际上包含 #
,您可以对其进行编码,但是不建议对文件名使用特殊字符。
请注意,片段标识符在 src
属性 中完全有效。您可以将该技巧用于各种 fun things with SVGs.