亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

aspnetcore 實(shí)現(xiàn)簡(jiǎn)單的偽靜態(tài)化功能

 更新時(shí)間:2019年07月12日 08:48:57   作者:Love it or leave it  
這篇文章主要介紹了aspnetcore 實(shí)現(xiàn)簡(jiǎn)單的偽靜態(tài)化功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Intro

在我的活動(dòng)室預(yù)約項(xiàng)目中,有一個(gè)公告模塊,類似于新聞發(fā)布,個(gè)人感覺像新聞這種網(wǎng)頁(yè)基本就是發(fā)布的時(shí)候編輯一次之后就再也不會(huì)改了,最適合靜態(tài)化了, 靜態(tài)化之后用戶請(qǐng)求的就是靜態(tài)文件基本不再需要服務(wù)器端查詢數(shù)據(jù)庫(kù)甚至服務(wù)器端渲染,可以一定程度上提升服務(wù)器的處理能力以及優(yōu)化用戶體驗(yàn),而且這種靜態(tài)化的url對(duì) SEO 比較友好。

由于我的這個(gè)項(xiàng)目正在開發(fā)中,遷移起來不太方便,所以使用的是偽靜態(tài)化,看上去是訪問的 *.html,實(shí)際上并不是 html,而是需要服務(wù)器處理的。

GetStarted

配置路由信息,注意順序,偽靜態(tài)的路由要在默認(rèn)路由之前

app.UseMvc(routes =>
{
  routes.MapRoute("Notice", "/Notice/{path}.html", new
  {
    controller = "Home",
    action = "NoticeDetails"
  });

  routes.MapRoute(name: "areaRoute",
    template: "{area:exists}/{controller=Home}/{action=Index}");

  routes.MapRoute(
    name: "default",
    template: "{controller=Home}/{action=Index}");
});

控制器代碼:

/// <summary>
/// 公告詳情
/// </summary>
/// <param name="path">訪問路徑</param>
/// <returns></returns>
public async Task<ActionResult> NoticeDetails(string path)
{
  if (string.IsNullOrWhiteSpace(path))
  {
    return RedirectToAction("Notice");
  }
  try
  {
    var noticeBll = HttpContext.RequestServices.GetService<IBLLNotice>();
    var notice = await noticeBll.FetchAsync(n => n.NoticeCustomPath == path.Trim());
    if (notice != null)
    {
      notice.NoticeVisitCount += 1;
      await noticeBll.UpdateAsync(notice, x => x.NoticeVisitCount);

      return View(notice);
    }
    else
    {
      return RedirectToAction("Notice");
    }
  }
  catch (Exception ex)
  {
    Logger.Error(ex);
    throw;
  }
}

實(shí)際效果:

https://reservation.weihanli.xyz/Notice/test-notice.html

notice details

Q&A

Q:為什么我們要做(偽)靜態(tài)化?

A:站點(diǎn)下的 *.html 文件有利于網(wǎng)站的 SEO 優(yōu)化,有利于百度和google爬蟲爬你的網(wǎng)站,SEO做的好有利于提高搜索排名【SEO的水也很深、感興趣的可以自己找資料研究】。

Q:什么是偽靜態(tài)化?什么是完全靜態(tài)化?他們的區(qū)別是什么?

A:偽靜態(tài)化是針對(duì)完全靜態(tài)化來說的,(完全)靜態(tài)化是會(huì)實(shí)際保存內(nèi)容到一個(gè) *.html 文件中,而偽靜態(tài)化則是通過服務(wù)器端技術(shù)通過匹配 url 符合一定的模式就重新交給指定的程序處理并返回內(nèi)容。

簡(jiǎn)單來說,(完全)靜態(tài)化會(huì)有一個(gè)實(shí)際存在的靜態(tài)文件,偽靜態(tài)化則不存在,需要較多服務(wù)器端的處理。

Q:偽靜態(tài)化和完全靜態(tài)化哪個(gè)好?

A:這個(gè)問題更好的問法應(yīng)該是這樣的:“什么時(shí)候適合用偽靜態(tài)化?什么時(shí)候適合用完全靜態(tài)化?”,一個(gè)事物既然存在就必然有它存在的道理,存在即合理,如果沒有存在的意義必將死去。

完全靜態(tài)化一般會(huì)根據(jù)一個(gè)模板生成一個(gè)實(shí)際存在的 *.html 文件,完全靜態(tài)化不需要太多的服務(wù)器端處理,客戶端請(qǐng)求這個(gè)文件時(shí)因?yàn)槭且粋€(gè)靜態(tài)文件服務(wù)器會(huì)直接將文件內(nèi)容返回給客戶端,不需要額外的服務(wù)器處理。
 完全靜態(tài)化會(huì)減少服務(wù)器的壓力。

偽靜態(tài)化服務(wù)器上并沒有靜態(tài) *.html文件,只是在服務(wù)器斷使用了Rewrite,將動(dòng)態(tài)URL進(jìn)行重寫,使動(dòng)態(tài)URL表現(xiàn)為靜態(tài)URL,以滿足網(wǎng)頁(yè)URL靜態(tài)需求但網(wǎng)頁(yè)依然為動(dòng)態(tài)調(diào)用的,,是需要很多服務(wù)器端處理的,比如url的模式匹配,從數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)。

總結(jié):雖然完全靜態(tài)化URL的網(wǎng)頁(yè)有打開速度快的優(yōu)點(diǎn),但是網(wǎng)站內(nèi)容巨大的話,勢(shì)必會(huì)使網(wǎng)站的體積變大很多,會(huì)有很多的靜態(tài)化文件,網(wǎng)站遷移的話很麻煩,另一方面如果網(wǎng)站內(nèi)容很多的時(shí)候修改模板的話,再次靜態(tài)化的時(shí)候會(huì)是一個(gè)比較大的工作量。實(shí)際使用的話還是需要根據(jù)自己實(shí)際需要來選取。

Reference

https://github.com/WeihanLi/ActivityReservation/blob/dev/ActivityReservation

總結(jié)

以上所述是小編給大家介紹的aspnetcore 實(shí)現(xiàn)簡(jiǎn)單的偽靜態(tài)化 ,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • .NET Core Web APi大文件分片上傳研究實(shí)現(xiàn)

    .NET Core Web APi大文件分片上傳研究實(shí)現(xiàn)

    這篇文章主要介紹了.NET Core Web APi大文件分片上傳研究實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 使用asp.net改變圖片顏色如灰色的變成彩色

    使用asp.net改變圖片顏色如灰色的變成彩色

    在網(wǎng)站上改變圖片的顏色,比如灰色的變成彩色,彩色的變成灰色,下面是經(jīng)過測(cè)試可行的解決方案
    2014-09-09
  • asp.net DataGrid控件中彈出詳細(xì)信息窗口

    asp.net DataGrid控件中彈出詳細(xì)信息窗口

    在DataGrid控件里單擊某一行的超級(jí)鏈接時(shí),彈出一個(gè)新的頁(yè)面顯示出該行的詳細(xì)信息
    2008-12-12
  • asp.net操作過程中常見錯(cuò)誤的解決方法

    asp.net操作過程中常見錯(cuò)誤的解決方法

    這篇文章主要介紹了asp.net操作過程中常見錯(cuò)誤的解決方法,主要有IIS無法識(shí)別ASP.NET、 SQL Server不允許進(jìn)行遠(yuǎn)程連接可能會(huì)導(dǎo)致此失敗等問題,感興趣的小伙伴們可以參考一下
    2015-10-10
  • asp.net 控件驗(yàn)證 FCKeditor

    asp.net 控件驗(yàn)證 FCKeditor

    FCKEditor是一個(gè)很不錯(cuò)的在線編輯器,可稱得上完美,但是它有一個(gè)問題,就是在使用RequiredFieldValidator進(jìn)行驗(yàn)證的時(shí)候,即使內(nèi)容不為空,也需要點(diǎn)擊兩次才能完成
    2009-06-06
  • asp.net 中文字符串提交亂碼的解決方法

    asp.net 中文字符串提交亂碼的解決方法

    現(xiàn)在為一家工作室做網(wǎng)站,在登陸模塊中涉及到前端頁(yè)面通過AJAX傳遞中文的用戶名和字母的密碼到后臺(tái)驗(yàn)證,然后再把驗(yàn)證后的信息返回到前端的過程。
    2009-11-11
  • asp.net 不用組件的URL重寫(適用于較大型項(xiàng)目)

    asp.net 不用組件的URL重寫(適用于較大型項(xiàng)目)

    網(wǎng)上很多關(guān)于url重寫的教程都推薦下載某某某組件, 我個(gè)人不喜歡這樣,即使是M$的組件也一樣,因?yàn)槲覀兏沙绦騿T的,越貼近真相越好。那么我也寫一個(gè)關(guān)于url重寫的文章,希望對(duì)和我一樣有個(gè)性的coder們有點(diǎn)幫助。
    2009-04-04
  • .NET實(shí)現(xiàn)工資管理系統(tǒng)

    .NET實(shí)現(xiàn)工資管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了.NET實(shí)現(xiàn)工資管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • asp.net圖片上傳生成縮略圖的注意事項(xiàng)

    asp.net圖片上傳生成縮略圖的注意事項(xiàng)

    asp.net圖片上傳生成縮略圖的注意事項(xiàng)...
    2007-09-09
  • 區(qū)分ASP.NET中g(shù)et方法和post方法

    區(qū)分ASP.NET中g(shù)et方法和post方法

    我們都知道,get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器上傳數(shù)據(jù)。本文主要介紹ASP.NET中g(shù)et方法和post方法的區(qū)別,需要的朋友可以參考下
    2015-10-10

最新評(píng)論