在url中使用连字符还是下划线是更好的惯例?

应该是/about_us还是/about-us?

从可用性的角度来看,我个人认为/about-us对最终用户来说要好得多,而谷歌和大多数其他网站(以及javascript框架)使用下划线命名模式。只是风格的问题吗?破折号有兼容性问题吗?


当前回答

我更喜欢破折号,因为下划线可能在一定程度上被链接下划线所掩盖。文本url主要是为了一眼就能识别出来,而不是为了语法正确,所以保留破折号用于连字符的论点是有限的。

文本URL的准确性很重要的是在将其读给某人时,在这种情况下,您不希望将下划线与空格混淆(反之亦然)。

我还发现破折号更美观,如果这有意义的话。

其他回答

Jeff对此有一些想法:https://blog.codinghorror.com/of-spaces-underscores-and-dashes/

两者都有缺点。我建议你选择一个并保持一致。

一些较老的web主机和DNS服务器实际上在解析url的下划线时存在问题,所以这可能是这些约定的一部分。

下划线替换不允许有空格的地方。破折号(连字符)可以是单词的一部分,因此将单词与已经包含连字符的连字符连接起来是丑陋的/令人困惑的。

Bad:

/low-budget-movies

好:

/low-budget_movies

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.

我个人会避免所有的破折号和下划线,如果是在代码中,我会选择驼峰式或帕斯卡式。

维基百科上关于camelCase的文章解释了它起源背后的一些原因。它们总计为

懒惰的程序员不喜欢 到达_键 潜在的混淆 可读性 施乐PARC的“Alto”键盘 没有下划线键。

如果用户要看到字符串,那么我不会做以上任何一件事,如果我不得不使用“关于我们”或“关于我们”,因为骆驼的情况已经蔓延到一些领域的常见用法,如产品名称。比如ThinkPad, TiVo