لقد أنشأت استطلاع رأي على منتداي كالتالي:
[poll name=freestyle type=multiple results=always min=1 max=14 public=true chartType=bar]
* **#1** 
* **#2** 
[/poll]
لقد انتقلت من استخدام شبكة توصيل المحتوى (CDN) إلى عدم استخدامه، وتم تغيير عناوين URL من cdn.unicyclist.com إلى unicyclist.com.
ومع ذلك، تظل روابط الصور هنا معطلة، رغم ظهورها بشكل صحيح في معاينة المنشور:
لم تؤدِ إعادة معالجة المنشورات وتشغيل الأمر rake 'posts:remap[cdn.unicyclist.com,unicyclist.com]' إلى إصلاح المشكلة.
يقترح موقع ask.discourse.org ما يلي:
ما الذي يحدث على الأرجح
خيارات الاستطلاع الخاصة بك لا توجد فقط في النص الخام للمنشور. في مخطط موقعك، تخزن الاستطلاعات أيضًا HTML المُعالَج للخيارات في:
pollspoll_options.htmlلذا قد تبدو معاينة المنشور سليمة، لكن مُعالج الاستطلاع قد لا يزال يستخدم HTML قديمًا يحتوي على اسم المضيف القديم لشبكة CDN.
وثائق ذات صلة:
- إنشاء الاستطلاعات وإدارتها
- إزالة DISCOURSE_CDN_URL
- تعطيل CDN يسبب عدم إمكانية عرض الصور القديمة التي تحتوي على عنوان URL لشبكة CDN
- استبدال سلسلة نصية في جميع المنشورات
تحذير مهم
قم بأخذ نسخة احتياطية كاملة أولاً.
أيضًا، تجنب “التعديل المباشر” للاستطلاع إذا كان يحتوي على أصوات، لأن تعديلات الاستطلاع عادةً ما تؤدي إلى مسح الأصوات:
نهج أكثر أمانًا: فحص استطلاع معطل واحد أولاً
داخل الحاوية:
cd /var/discourse ./launcher enter app rails cثم ابحث عن الاستطلاع الخاص بذلك المنشور:
poll = Poll.find_by(post_id: POST_ID, name: "freestyle") PollOption.where(poll_id: poll.id).pluck(:id, :html)إذا رأيت
cdn.unicyclist.comفي ذلك HTML، فهذا يؤكد المشكلة.إصلاح ذلك الاستطلاع الواحد
poll = Poll.find_by(post_id: POST_ID, name: "freestyle") PollOption.where(poll_id: poll.id).find_each do |opt| new_html = opt.html.gsub("cdn.unicyclist.com", "unicyclist.com") opt.update_columns(html: new_html, updated_at: Time.zone.now) endثم أعد معالجة ذلك المنشور أيضًا:
Post.find(POST_ID).rebake!إذا نجح الأمر، قم بإصلاح جميع خيارات الاستطلاع دفعة واحدة
PollOption.find_each do |opt| next unless opt.html&.include?("cdn.unicyclist.com") opt.update_columns( html: opt.html.gsub("cdn.unicyclist.com", "unicyclist.com"), updated_at: Time.zone.now ) endلماذا لم يُفلح الأمر
posts:remap؟لأن مهمة Rake هذه مخصصة لـ محتوى المنشور، بينما توجد مراجع الصور المعطلة على الأرجح في ذاكرة التخزين المؤقت لـ HTML خيارات الاستطلاع بدلاً من ذلك:
التوصية
- اختبر الأمر على استطلاع واحد معطل
- تأكد من تحميل الصور
- فقط بعد ذلك قم بتشغيل الإصلاح الشامل
إذا أردت، يمكنني كتابة سكربت جاهز للنسخ واللصق حيث تقوم فقط باستبدال
POST_IDوتشغيله بأمان على استطلاع واحد أولاً.
هل يبدو ذلك جيدًا بالنسبة لك؟ سأقوم بأخذ نسخة احتياطية أولاً بالطبع، لكنني أفضل تجنب الحاجة إلى استعادة منتداي.
أحتاج إلى الاحتفاظ بجميع نتائج الاستطلاعات ![]()
سؤال إضافي: هل ينبغي لـ Discourse معالجة هذه الحالات بشكل أصلي؟
