href语法:文件名中是否有空格是可以的

Moo*_*oon 45 html syntax anchor href

一直以来我的做法是,当我使用图像时,我将它们命名为 walls_ico,bu_hover

所以当我给出路径他们就像

<img src="images/walls_ico.ico" />
<img src="buttons/bu_hover.png" />
Run Code Online (Sandbox Code Playgroud)

UNTIL现在当我在一个用户上传文件的项目时......

我想知道文件和文件夹之间的空格是否可以

<img src="buttons/bu hover.png" />
Run Code Online (Sandbox Code Playgroud)

Fré*_*idi 59

src属性应包含有效的URL.由于URL中不允许使用空格字符,因此必须对它们进行编码.

你可以写:

<img src="buttons/bu%20hover.png" />
Run Code Online (Sandbox Code Playgroud)

不是:

<img src="buttons/bu+hover.png" />
Run Code Online (Sandbox Code Playgroud)

因为,正如DavidRR在他的评论中正确指出的那样,编码空格字符+仅在URL的查询字符串部分中有效,而不在路径本身中.

  • 我不相信`src ="buttons/bu + hover.png"`是有效的.根据[此答案](http://stackoverflow.com/a/497991/1497596)和[此答案](http://stackoverflow.com/a/1211256/1497596),将空格编码为"+"在URL的**查询字符串**部分中有效**.此外,在我刚刚进行的测试中,当我尝试访问其名称中的空格(不正确地)编码为"+"字符的文件时,IE和Firefox都返回404错误. (3认同)
  • 基本上只是url编码src,如果你正在使用php只需使用:http://php.net/manual/en/function.urlencode.php (2认同)

Cir*_*四事件 5

引用 HTML5 来支持 Frederic,不允许使用空格:

http://www.w3.org/TR/html5/links.html#attr-hyperlink-href

a 和 area 元素上的 href 属性必须具有一个值,该值是可能被空格包围的有效 URL。

“有效 URL”的定义指向:http://url.spec.whatwg.org,它定义了 URL 代码点https://url.spec.whatwg.org/#url-code-points

URL 代码点为 ASCII 字母数字、“!”、“$”、“&”、“'”、“(”、“)”、“*”、“+”、“,”、“-”、“。 "、"/"、":"、";"、"="、"?"、"@"、"_"、"~" 以及 U+00A0 到 U+D7FF、U+ 范围内的代码点E000 ~ U+FDCF、U+FDF0 ~ U+FFFD、U+10000 ~ U+1FFFD、U+20000 ~ U+2FFFD、U+30000 ~ U+3FFFD、U+40000 ~ U+4FFFD、U+50000 ~ U+5FFFD、U+60000 至 U+6FFFD、U+70000 至 U+7FFFD、U+80000 至 U+8FFFD、U+90000 至 U+9FFFD、U+A0000 至 U+AFFFD、U+B0000 至 U+ BFFFD、U+C0000 至 U+CFFFD、U+D0000 至 U+DFFFD、U+E1000 至 U+EFFFD、U+F0000 至 U+FFFFD、U+100000 至 U+10FFFD。

然后,规范在解析算法的各个部分使用术语 URL 代码点,如下所示:

如果 c 不是 EOF 代码点、不是 URL 代码点、也不是“%”,则解析错误。

对于方案、权限、相对路径、查询状态和片段状态:整个 URL。