用 Disqus 給點意見
雖然我個人不太喜歡留言。不過身為一個部落格,沒有留言好像說不過去。
要做留言的話,第一個要考慮的問題,是如何實做反濫用機制──沒有人想看到自己的部落格,都是與 Line 妹妹喝茶吧?
正當我這麼想的時候,有人告訴我:
你可以用 Disqus 實做留言。
於是我查了一下 Disqus 怎麼用。還蠻簡單的,套個 HTML 與 JavaScript 的腳本就成。
但你看一下,上面的註解,有個有趣的東西……
/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/
/*
var disqus_config = function () {
this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};
*/
嗯,按照官方文件所說,這段小腳本可以避免意見重複發送。我似乎應該做這個東西吧? 我運氣也不錯,很快就看到 Jason Lung 的文章:
var disqus_config = function ()
{
this.page.url = "<%= url_for([@post, {only_path: false}]) %>"
this.page.identifier = "<%= @post.id %>";
};
複製貼上,下一秒就完成囉。抄簡單der
……才怪。
we were unable to load disqus. if you are a moderator please see our troubleshooting guide
按照 troubleshooting guide 的說法,有以下幾個可以探測的點:
- 信任網域問題
- 載入網站是否一樣
- 域名有沒有變更
我很確定我的網站沒有這些問題,所以我沒深究。
- 逾時:Disqus 表示「網站部落格拜託你們,先幫我撐個十秒左右就好」
- HTTP 狀態碼:這個可以透過開發工具檢測。200 代表成功載入、304 代表已經有了。
那就是 JavaScript 的問題了吧?
- s.src 的網址正確與否:把裡面的網址貼到瀏覽器,如果找得到就成功了──前提是沒找錯人。
- 非 ASCII 字符:似乎是針對那些會用特殊符號如 ñ å š 之類的網站。我用的是數字所以沒差。
- JavaScript 變數:問題就在這裡,接下來就會談到。
- this.page.title 不能超過兩百字。不過我沒寫就是了。
- this.page.url 不能有空白。
- this.page.url 必須是絕對網址。相對網址會出問題。
所以要把上面那段程式碼修正為:
var disqus_config = function ()
{ // https://iismmx-rails-blog.herokuapp.com 是我的網站 URL。複製貼上的話,應該把 URL 變成自己的網站。
this.page.url = "https://iismmx-rails-blog.herokuapp.com<%= url_for([@post, {only_path: false}]) %>";
this.page.identifier = "<%= @post.id %>";
};
這樣就行了。一個留言後台終於完成了。
等一下……我甚至連留言的資料庫都不用寫了嘛…………!!