MVC裡的URL Decode
URL裡只能傳送ASCII字符
一般來說為了避免傳送的URL帶有其他不合法字符,在傳送URL前都應該先URL Encode一下
而因為送出去有Encode過,我以為Controller接request的時候也要先Decode
結果原來本來就Decode了 比方說URL中(輸出給user的)
c=%2by1W1wniZS9ZLccej53 ...(more)
一般來說為了避免傳送的URL帶有其他不合法字符,在傳送URL前都應該先URL Encode一下
而因為送出去有Encode過,我以為Controller接request的時候也要先Decode
結果原來本來就Decode了 比方說URL中(輸出給user的)
c=%2by1W1wniZS9ZLccej53 ...(more)
讓連結貼上到whatsapp、telegram等通話軟件時能顯示預覽/摘要
當我們用通話軟件分享連結時,通常都有預覽摘要之類
沒有的話就會想,這會不會是spam啦,不敢點進去這樣
尤其當你的網站一點知名度都沒有的時候 可以看見網媒這種很講究SEO的網站,所有meta tag都一應俱存 儘管這個blog已經加上了description,但顯然不夠
這次加上了description、title、keywords等< ...(more)
沒有的話就會想,這會不會是spam啦,不敢點進去這樣
尤其當你的網站一點知名度都沒有的時候 可以看見網媒這種很講究SEO的網站,所有meta tag都一應俱存 儘管這個blog已經加上了description,但顯然不夠
這次加上了description、title、keywords等< ...(more)
SQL筆記
避免全表掃瞄(Full Table Scans, FTS)
加index
不要select *,要什麼就抓什麼,不要抓多餘資料
where盡量避免使用!=和<>,這樣會令engine放棄使用index改用FTS
避免用null,理由同上,可以將表的null改成0,然後用=0,觸發使用index
避免使用or,改用union all,理由同上
避免在wher
...(more)
blog專案 - 點擊圖片縮放
新增了一個圖片縮放的功能
https://github.com/fat/zoom.js
它是一個很簡單的插件,所有擁有attribute data-action="zoom"的img元素都具有放大功能 <img src="img/blog_post_featured.png" data-action="zoom"> ...(more)
https://github.com/fat/zoom.js
它是一個很簡單的插件,所有擁有attribute data-action="zoom"的img元素都具有放大功能 <img src="img/blog_post_featured.png" data-action="zoom"> ...(more)
Blog專案 - 創造文章
上一篇文章做到的進度是:
能讀DB抓文章進Views
能根據傳進Views的Data產生文章列表
能點進去看內文 那基本上Blog最最基礎的部份就達成了,接下來應該開始寫文章,不然其他功能都用不到 當初計劃本站的時候是打算把文章用markdown語法儲存在DB
再找方法把markdown parse成html顯示出來
所以b ...(more)
能根據傳進Views的Data產生文章列表
能點進去看內文 那基本上Blog最最基礎的部份就達成了,接下來應該開始寫文章,不然其他功能都用不到 當初計劃本站的時候是打算把文章用markdown語法儲存在DB
再找方法把markdown parse成html顯示出來
所以b ...(more)
Blog專案 - 連接DB
目前的進度
首頁文章列表 (Controller & View)
內文
連接DB
閱讀文章的基本功能已經大致完成,但還沒有文章,所以現在開始著手寫連接DB的部份
前文提到當我們request /blog或者/blog/{id} 時,會執行BlogFactory的2個Method,從database裡面抓取 ...(more)
首頁文章列表 (Controller & View)
內文
連接DB
閱讀文章的基本功能已經大致完成,但還沒有文章,所以現在開始著手寫連接DB的部份
前文提到當我們request /blog或者/blog/{id} 時,會執行BlogFactory的2個Method,從database裡面抓取 ...(more)
惡耗! 網站剛上線就發現本來在用的SSL供應商取消了免費政策!
話說本來因為主機上某個service api需要用到SSL憑證
當時第一次處理,在網上找到SSL for free的教學就用了,需要每3個月手動更新一次證書 ^如圖 第一次申請證書,從下載到掛上IIS,足足花了一個晚上,終於更新幾次之後成為老手,15分鐘完成 今天買了新域名cancode.co,但本來在用的SSL憑證是 ...(more)
當時第一次處理,在網上找到SSL for free的教學就用了,需要每3個月手動更新一次證書 ^如圖 第一次申請證書,從下載到掛上IIS,足足花了一個晚上,終於更新幾次之後成為老手,15分鐘完成 今天買了新域名cancode.co,但本來在用的SSL憑證是 ...(more)
Blog專案 - Table Design難題
Blog table內有tags這個varchar欄位
value為"tag1, tag2, tag3"這樣
當以tag搜尋文章時,就用sql以%tag%方式去找 但問題是
當blog 1的tags是test
blog 2的tags是iq-test
如果我用%test%去找,會連帶blog2都找出來,這 ...(more)
value為"tag1, tag2, tag3"這樣
當以tag搜尋文章時,就用sql以%tag%方式去找 但問題是
當blog 1的tags是test
blog 2的tags是iq-test
如果我用%test%去找,會連帶blog2都找出來,這 ...(more)
Blog專案 - 內文 (Controller, view)
內文很簡單,就是詳細讀一篇文章,基本上比首頁列表模式更簡單,所以立即看代碼吧。
public class BlogController : Controller
{
[Route("/blog/{id:int}")]
public IActionResult Individual(int id)
{
ViewData["Blo
...(more)
Blog專案 - 首頁列表 (Controller, Model, View, css)
首頁的思維是這樣的
是一個列表,預覽文章
左邊是Blog、右邊是sidebar
下方有頁碼
那麼立即開始
首先新建Controller/BlogController.cs、Models/Blog、Views/Blog/index.cshtml
給未寫過MVC的朋友簡單說明一下,Controller負責最外層接request,Model負責內 ...(more)
首先新建Controller/BlogController.cs、Models/Blog、Views/Blog/index.cshtml
給未寫過MVC的朋友簡單說明一下,Controller負責最外層接request,Model負責內 ...(more)