Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何更新ruby/react.js的元标记?_Jquery_Ruby On Rails_Ruby_Facebook_Reactjs - Fatal编程技术网

Jquery 如何更新ruby/react.js的元标记?

Jquery 如何更新ruby/react.js的元标记?,jquery,ruby-on-rails,ruby,facebook,reactjs,Jquery,Ruby On Rails,Ruby,Facebook,Reactjs,我有一个新闻网站,其中DOM在react.js中呈现,后端在RubyonRails中设计。我的问题是,由于DOM是虚拟的,facebook无法获取信息,因此“facebook共享”不会加载图像或页面标题。每次用户访问我网站上的新页面时,只会重新加载页面的一部分,而不是整个页面(react.js) 我的问题是:当只有一部分页面被重新加载时,我如何更新meta标签,以便在有人决定共享我的url时,Facebook能够正确地刮去它 我不确定最好的方法是重建ruby中的主要头版,还是使用更简单的reac

我有一个新闻网站,其中DOM在react.js中呈现,后端在RubyonRails中设计。我的问题是,由于DOM是虚拟的,facebook无法获取信息,因此“facebook共享”不会加载图像或页面标题。每次用户访问我网站上的新页面时,只会重新加载页面的一部分,而不是整个页面(react.js)

我的问题是:当只有一部分页面被重新加载时,我如何更新meta标签,以便在有人决定共享我的url时,Facebook能够正确地刮去它

我不确定最好的方法是重建ruby中的主要头版,还是使用更简单的reactjs或jquery解决方案


以下是我尝试过的(没有成功)。为了解释-当内容部分和标题部分刷新时,我希望共享图像是标题图像,共享标题是内容标题标题。这不起作用:

    $("meta[property='og:image']").attr($('#header_photo').css('background-image'));

  if($('#discuss_header_question').length) { 
    $("meta[property='og:title']").html($('#header_content_title'));
    } else {
      $("meta[property='og:title']").html("mywebsite.com generic title.");
    }

你不能用javascript来做这件事,因为Facebook只是在删除HTML。它不会在返回的HTML中运行任何javascript。对于要共享的每个内容,您还需要一个单独的URL,该URL必须在服务器请求时提供包含相关opengraph元标记的HTML代码。因此,是否无法通过React.js更新元标记中的opengraph属性?这似乎有点奇怪,因为Facebook是创建React.js的网站……如果你在服务器上运行React.js,你可以运行React.CBroe——是的,每个页面都有自己的url。e、 g.对于主题1,url是www.mysite.com/#discussion/1@WizKid-我怎么做?你能给我指一下正确的方向吗?