ユニバーサルコードを使用したいのですが、最も基本的な機能を実行するのに問題が発生しました。
testの短縮名とdeploymentの短縮名を作成したいと思います。これは、Disqus管理パネルから作成しました。
これが私のshowアクションのdisqusコードです:
# inside show.html.erb
<%= render raw 'comments' %>
# partial "comments"
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_shortname = '<%= Post::DISQUS_SHORTNAME %>';
var disqus_identifier = '<%= @post.id %>';
var disqus_url = '<%= url_for([:blog, @topic, @post])%>';
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
私のモデルでは、Post
を定義し、次のように短い名前を定義します。
DISQUS_SHORTNAME = if Rails.env.development?
"dev-shortname".freeze
else
"shortname".freeze
end
ローディングスピナーが機能していることを確認できますが、それだけです。明らかな何かが欠けていますか? url_for呼び出しの2番目のオプションとしてonly_path: false
を含めようとすると、メソッドの多くの引数に指定したことを示す例外が発生します。そうしないと、私のDisqusがハングします。
これを機能させるには、次のように設定する必要があります。
var disqus_developer = 1; // this would set it to developer mode
参照: http://ray247.wordpress.com/2009/09/02/how-to-develop-with-disqus-on-localhost/
2013年9月の時点で、上記のソリューションはどれも機能しませんでした。
それを機能させるには、このページの「信頼できるドメイン」リストにlocalhostを追加する必要がありました。
http:// [disqus_shortname]。disqus.com/admin/settings/advanced/
また、以下にある「ユニバーサルコード」を使用して、ブログの投稿に埋め込みます。
http:// [disqus_shortname]。disqus.com/admin/settings/universalcode/
そしてそれはうまくいきます! :)
登録したサイトのURLと一致するようにdisqus_url
を設定してみてください。
推奨される解決策は、複数のショートネーム(別名サイト)を登録することです。これは私のために働いた。例:balloons
およびballoons-dev
。
環境に基づいて使用しているサイトを動的に設定する場合は、「変更しない」に関するコメントの下にある行の短縮名を置き換えるために、Javascriptを必ず変更してください(例:"balloons" if not settings.DEBUG else "balloons-dev"
)。
これは今では古いかもしれませんが、スクリプトとDisqus設定の両方でURLを空のままにして修正しました
この問題に直面した2020年の誰にとっても、Disqussで組織名にショートネームを設定することでうまくいくことがわかりました。また、URLは何にでも設定できます。
disqus_developer = 1
は何もしません。