在url中使用连字符还是下划线是更好的惯例?
应该是/about_us还是/about-us?
从可用性的角度来看,我个人认为/about-us对最终用户来说要好得多,而谷歌和大多数其他网站(以及javascript框架)使用下划线命名模式。只是风格的问题吗?破折号有兼容性问题吗?
在url中使用连字符还是下划线是更好的惯例?
应该是/about_us还是/about-us?
从可用性的角度来看,我个人认为/about-us对最终用户来说要好得多,而谷歌和大多数其他网站(以及javascript框架)使用下划线命名模式。只是风格的问题吗?破折号有兼容性问题吗?
当前回答
I'm more comfortable with underscores. First of all, they match in with my regular programming experience of variable_names_are_not-subtraction, second of all, and I believe this was mentioned already, words can have hyphens, but they do not ever have underscores. To pick a really stupid example, "Nation-state country" is different from "nation state country". The former translates something like "the land of nation-states" (think "this here is gun country! Best move along, y'hear?"), whereas the latter looks like a list of sometime-synonyms. http://example.com/nation-state-country/ doesn't appear to mean the same as http://example.com/nation-state_country/, and yet, if hyphens are delimiters/"space"s in addition to characters in words, it can. The latter seems more clear as to the actual purpose, whereas the former looks more like that list, if anything.
其他回答
一些较老的web主机和DNS服务器实际上在解析url的下划线时存在问题,所以这可能是这些约定的一部分。
我个人会避免所有的破折号和下划线,如果是在代码中,我会选择驼峰式或帕斯卡式。
维基百科上关于camelCase的文章解释了它起源背后的一些原因。它们总计为
懒惰的程序员不喜欢 到达_键 潜在的混淆 可读性 施乐PARC的“Alto”键盘 没有下划线键。
如果用户要看到字符串,那么我不会做以上任何一件事,如果我不得不使用“关于我们”或“关于我们”,因为骆驼的情况已经蔓延到一些领域的常见用法,如产品名称。比如ThinkPad, TiVo
URL中允许有空格,所以你可以在链接中使用“/about us”(尽管这将被编码为“/about%20us”)。但老实说,这永远是个人偏好,所以这里没有真正的答案。
我会按照惯例,破折号可以出现在单词中,所以空格应该转换为下划线。
下划线替换不允许有空格的地方。破折号(连字符)可以是单词的一部分,因此将单词与已经包含连字符的连字符连接起来是丑陋的/令人困惑的。
Bad:
/low-budget-movies
好:
/low-budget_movies
不只是破折号和下划线:
带空格的文本 textwithoutspaces 编码% 20空间% 20 % 20的url underscore_means_space dash-means-space + +是+空间 camelCase PascalCase “带空格的引用文本”(以及单引号和双引号) 斜杠/手段/空间 dot.means.space