https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-2.1

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-2.1

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view=aspnetcore-2.1

这三篇已经有 step by step 的方式了,这里记入一下观点就好了。

1. route 最重要的 2 个功能是

-request url 匹配到 route 然后找出 controller 来处理请求

-反过来通过 controller 匹配 route 生产出 request url

一般上我们 2 个都会用上.

2. route Conventional vs route Attribute

conventional 用于 html page 比较好用, attribute 用于 web api 比较好用

不推荐乱乱用...

3. 常用的 controller + action = page

除了 layout 外, 一般上一个 design 我们算一个 page

通常用 1 route + 1 controller + 1 action 来 handler.

比如 about + AboutController + Index

如果是 services page 又很多的话

通常是 services + ServiceController + Index 表示所有 service

然后 services/service-a + ServiceController + ServiceA 来代表某个 service

如果是链接数据的, services/{serviceUrlTitle} + ServiceController + Detail 来表示

语言

refer :

https://searchengineland.com/the-ultimate-guide-to-multilingual-and-multiregional-seo-157838

https://angular.io/guide/i18n

https://support.google.com/webmasters/answer/189077?hl=en

https://www.seozac.com/en-seo/hreflang-tag/

1. 使用 path 来表示语言

www.domain.com/zh-Hans/about-us

path 的好处是容易 maintain, 性价比高,如果是 SEO 的话,自然是弄一个 domain.cn 更好..

2. zh-Hans or zh-CN ?

CN 是区域, zh 是中文, Hans 是 language script 简体. Hant 是繁体

所以 zh-Hans 或 zh-Hans-CN 才正确.

古时候 zh-CN 表示简体, zh-TW 表示繁体,错误的用区域来表达 script 了.

3. google seo 的语言是 ISO 639-1 format, script 是 ISO 15924 区域我没有做所以不管 (上面 refer 里有)

seo 做语言要写 alternate,

如果还做区域的话要写 continental

比如 en-US 和 en-GB 是很像的, 只有一些类似 color 和 colour 的区别而已。

SEO 会以为是重复内容的。

4. asp.net core 的流程是, 有一个 request middle 拦截 request 后会从 request 里推测出请求的语言是什么

可以从 cookies, header, queryparams, path 等等. 然后整个访问 scope 里我们就可以通过依赖注入获取到 locale 了.

翻译和 datetime tostring 都会依据这个做处理哦。

Asp.net core (学习笔记 路由和语言 route & language)的更多相关文章

  1. Asp.net Core学习笔记

    之前记在github上的,现在搬运过来 变化还是很大的,感觉和Nodejs有点类似,比如中间件的使用 ,努力学习ing... 优点 不依赖IIS 开源和跨平台 中间件支持 性能优化 无所不在的依赖注入 ...

  2. Asp.net core 学习笔记 ( Data protection )

    参考 : http://www.cnblogs.com/xishuai/p/aspnet-5-identity-part-one.html http://cnblogs.com/xishuai/p/a ...

  3. Asp.net core 学习笔记 SignalR

    refer : https://kimsereyblog.blogspot.com/2018/07/signalr-with-asp-net-core.html https://github.com/ ...

  4. Asp.net core 学习笔记 (授权)

    更新 : 2018-11-24 记入一些思考 asp.net core + identity 的权限是这样的 user = 1 个登入账号 role = 1 个角色 (类似于公司里的一个职位) cla ...

  5. Asp.net core 学习笔记 ( identity server 4 JWT Part )

    更新 : id4 使用这个 DbContext 哦 dotnet ef migrations add identity-server-init --context PersistedGrantDbCo ...

  6. Asp.net core 学习笔记 ( Web Api )

    asp.net core 把之前的 webapi 和 mvc 做了结合. mvc 既是 api. 但是后呢,又发现, api 确实有独到之处,所以又开了一些补助的方法. namespace Proje ...

  7. Asp.net core 学习笔记 ( IIS, static file 性能优化 )

    更新 : 2019-02-06 最后还是把 rewrite 给替换掉了. 所以 rewrite url 也不依赖 iis 了咯. refer : https://docs.microsoft.com/ ...

  8. Asp.net core 学习笔记 ( Area and Feature folder structure 文件结构 )

    2017-09-22 refer : https://msdn.microsoft.com/en-us/magazine/mt763233.aspx?f=255&MSPPError=-2147 ...

  9. Asp.net core 学习笔记 QR code and Barcode

    QR code 和 Barcode 经常会使用到. Java 阵营有著名的 zxing https://github.com/zxing/zxing .Net 有对接它的 port https://g ...

随机推荐

  1. 个人学习随笔(psi-blast随笔)

    psi-blast学习 最近自己学习了一些新工具,最近在学习关于蛋白质相互作用位点的预测,在学习中,接触了几个新的工具,下面说说自己正在学习的psi-blast. 首先要说我用psi-blast用来做 ...

  2. 解决GBK字符转UTF-8乱码问题

    通过以下方法将GBK字符转成UTF-8编码格式的byte[]数组 package test; import java.io.UnsupportedEncodingException; public c ...

  3. BAPI 调用相当于BAPI_TRANSACTION_COMMIT 的方法

    为什么.net调用SAP的BAPI接口需要调用BAPI_TRANSACTION_COMMIT呢?首先得明白BAPI_TRANSACTION_COMMIT这个BAPI的作用.它功劳很大,在SAP里面很多 ...

  4. ServletContextDemo

    1.servlet 之间共享数据 package xw.servlet; import javax.servlet.ServletContext; import javax.servlet.http. ...

  5. 转: ES6异步编程:Generator 函数的含义与用法

    转: ES6异步编程:Generator 函数的含义与用法 异步编程对 JavaScript 语言太重要.JavaScript 只有一根线程,如果没有异步编程,根本没法用,非卡死不可. 以前,异步编程 ...

  6. 1418 抱歉 ACM 欧拉公式

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1418 思路:一看题目,明显是要求我们找规律,于是我就在草稿纸上画了很多个图像,还是没有找到规律,于是我就在 ...

  7. <a>链接添加样式问题

    <a>链接是内联元素,必须设置成块元素block,才能有 width 和 height,不过你可以又定义display:block再定义成 display:inline 这样可以避免在IE ...

  8. 基于maven javaweb编程缺少java源文件

    前提:基于maven的javaweb的开发环境,可参考 link 一. https://blog.csdn.net/ldlly0505/article/details/79674826 1.在sour ...

  9. 从C,C++,JAVA和C#来看String库的发展(二)---JAVA和C#篇

    http://www.cnblogs.com/wenjiang/p/3272859.html 终于要进入面向对象的世界了,虽然C++也是面向对象,但是它的面向对象程度并不高,因为考虑到要兼容C语言的移 ...

  10. python入门第一篇

    python里面 单行注释用:#被注释内容 多行注释用:"""被注释内容""" 要想py2.7和py3.5都能运行,必须在文件头部加: #/ ...