جربت ذلك، وقمت بتعيين cors origins إلى https://xxxxx.s3.us-east-2.amazonaws.com
وقمت أيضًا بتعيين DISCOURSE_ENABLE_CORS: true في /var/discourse/containers/app.yml
ولكنه لا يعمل.
وهل قمت بتشغيل ./launcher rebuild app بعد إجراء تغييرات على app.yml؟ قد تحتاج أيضًا إلى إجراء تحديث قسري للمتصفح.
بالمناسبة، قد ترغب في التحقق من قسم الملفات في إعدادات المسؤول لمعرفة ما إذا كنت قد غيرت الإعدادات التي تؤثر على هذه الميزة. لا أعتقد أيضًا أنه يمكن توقع عمل هذه الميزة إذا كنت تربط بملف PDF مستضاف على خادم آخر. لقد اختبرت هذا للتو على موقعي ولم يتم عرض المعاينة لملف PDF نفسه الذي تم تقديمه عن بُعد.
أخبرنا إذا وجدت مصدر المشكلة!
مثال على تنسيق ماركداون للمنشور حيث لم تعمل الميزة عن بُعد ولكنها عملت عند تحميلها محليًا.
عن بعد:
[test remote pdf](https://jsoncompare.org/LearningContainer/SampleFiles/PDF/sample-pdf-with-images.pdf)
تم التحميل محليًا:
[sample-pdf-with-images.pdf|attachment](upload://uOJLgHidEXnbqPRn2p6yP10ecQU.pdf) (3.8 ميغابايت)
كيف يبدو:
نعم. لكنه لم ينجح.
عند تمكين S3 في Discourse
إذًا بحكم التعريف، يتم تخزين الملفات على نطاق مختلف.
أعتقد أن هذا يوضح المشكلة. لكنني ما زلت آمل أن يتمكن المكون الإضافي من دعم تثبيتات Discourse التي تم تمكين S3 فيها.
لستُ على دراية بهذا الإعداد. هل اتبعت هذه التعليمات؟
نعم، لقد قمت بتشغيل S3 (وإعداد “الوسائط الآمنة” المرتبط بها) لعدة سنوات دون مشكلة.
مكون PDF المضمن فقط هو الذي لا يعمل مع هذا الإعداد.
للإشارة، حتى تعيين app.yml على هذا النحو:
DISCOURSE_ENABLE_CORS: true
DISCOURSE_CORS_ORIGIN: ‘*’
لا يساعد
واجهت هذه المشكلة بالضبط أيضًا، وانتهى بي الأمر بعكس تحميلات S3 الخاصة بي فقط للحصول على هذا TC للعمل نظرًا لقيمته العالية بالنسبة لنا:
أعتقد حقًا أنه نظرًا لأن هذا official ويتم تشجيع تحميلات S3، فيجب النظر في هذا الأمر لمعرفة ما إذا كان يمكن جعله يعمل مع S3 بطريقة ما. قد يكون أن ملفات PDF مستبعدة خصيصًا من تحميلات S3، ولكن هذا سيكون سيئًا لأن بعضها ضخم!
لا أعتقد أن أي شخص سيختلف.
أفترض أن الأمر يتعلق بالوعي والأولويات.
على الأقل فيما يتعلق بـ “الوعي”، ربما يمكن لـ @Johani، صاحب الموضوع، إضافة ملاحظة صغيرة في موضوع هذا النقاش تفيد بأن مكون PDF المضمن لا يعمل مع تمكين S3.
سيؤدي ذلك إلى توفير الوقت على الآخرين في استكشاف الأخطاء وإصلاحها وزيادة الوعي بالمشكلة.
هناك بعض المعلومات حول S3 في هذه المشاركات التي استخرجتها من المؤقت التلقائي إذا كانت مفيدة؟
تم دمج منشور في موضوع موجود: Theme-Component Topics project
نعم، هذا يعمل ![]()
للإشارة إذا احتاج أي شخص آخر هذا:
-
اذهب إلى وحدة تحكم AWS، الدلاء
https://s3.console.aws.amazon.com/s3/bucketsوحدد الدلو الذي تم استخدامه لتثبيت Discourse الخاص بك -
اختر علامة التبويب “الأذونات”

-
قم بالتمرير لأسفل إلى “مشاركة الموارد عبر الأصل (CORS)” واكتب:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET"
],
"AllowedOrigins": [
"https://my-site.com"
],
"ExposeHeaders": []
}
]
يجب أن تبدو هكذا:
أتمنى لو كنت قد وجدت ذلك بينما كنت لا أزال أقوم بتحميلات S3!!
قد أحتاج إلى مراجعتها الآن. @JammyDodger، أتساءل عما إذا كان يجب ملاحظة تلك الأشياء على كل من S3 وهذا المنشور الأصلي حتى لا يتعثر الآخرون في هذا.
بالتأكيد.
كنت أنتظر فقط بعض التأكيد على أنه نجح قبل التفكير في أفضل طريقة لإجراء تعديل. ![]()
فكرتان تعالجان نفس المشكلة: عرض نافذة discourse ضيق إلى حد ما، لذا فإن معظم ملفات PDF صغيرة جدًا بحيث لا يمكن قراءتها ضمن السطر. لمعالجة هذا، يمكننا
أ) جعل إطار PDF قابلاً لتغيير الحجم؟ لقد جربت هذا باستخدام CSS بالفعل، ولكن دون جدوى - يبدو أن الشبكة الأساسية تعيق ذلك
ب) تقديم رابط ثانٍ “فتح في علامة تبويب جديدة” بجانب رابط التنزيل؟ أنا حريص جدًا على عدم تنزيل الكثير من الأشياء من منتدانا.
[اقتباس=“Ralf Stockmann، مشاركة: 111، موضوع: 157649، اسم المستخدم: Ralf_Stockmann”]
ب) هل تقدم رابطًا ثانيًا “فتح في علامة تبويب جديدة” بجانب رابط التنزيل؟ أنا حريص جدًا على عدم تنزيل الكثير من الأشياء من منتدانا.
[/اقتباس]
سيكون هذا تحسنًا ملحوظًا! ولا ينبغي أن يكون من الصعب جدًا إضافته على ما أعتقد. قد أحاول إنشاء طلب سحب (PR) لهذا إذا توفر لي الوقت خلال الأيام القليلة القادمة.
أعتقد أن (ب) مُقدم بالفعل كخيار، على سبيل المثال، ضمن السطر مقابل الفتح في علامة تبويب جديدة. ربما خيار ثالث للسماح للمستخدمين برؤية ضمن السطر وفتحه في علامة تبويب جديدة؟ أنا أحب هذه الفكرة أيضًا.
قد يكون (أ) صعبًا نظرًا لصعوبة جعل الأشياء تبدو صحيحة في منشور.
@Ralf_Stockmann و @Alon1 هل جربتما…
أيضًا، على موقع Discourse الخاص بي، أستخدم هذه الطريقة…
تضمين ملف PDF من Google Drive
(هذه هي طريقتي المفضلة لكي تكون ملفات PDF في إطارات iFrames متجاوبة - الطرق الأخرى تفشل في الغالب في أن تكون متجاوبة عبر المتصفحات.)
- مشاركة
- نسخ رابط المشاركة
- فتح رابط المشاركة في علامة تبويب جديدة
- النقر على النقاط الرأسية الثلاث في الزاوية العلوية اليمنى
- تحديد “تضمين عنصر”
- نسخ كود الإطار iFrame المعروض
- لصقه في محرر Discourse
يتم تضمين ملف PDF تجريبي على Google Drive هنا أدناه والذي يمكنك \u003c\u003c تنزيله هنا \u003e\u003e
<iframe src="https://drive.google.com/file/d/1KQ-jn7R0NmZxw955QaPu3lvLFh5zpnDe/preview" width="640" height="480" allow="autoplay"></iframe>
هذا ما يبدو عليه… (والذي يمكنك أيضًا تجربته مباشرة هنا على موقعي)
هذا رائع!
ببساطة (1) تثبيت مكون السمة IFrame Lightboxes و (2) إضافة عنوان URL الخاص بموقعي إلى قائمة “نطاقات أصل iframe” في إعدادات المكون، يعمل! يضيف زر التوسيع مباشرة فوق الزاوية اليمنى للملف المضمن بصيغة PDF
مباشرة من العلبة ![]()
نظرًا لأنني لم أتمكن بعد من فتح ملفات PDF في علامة تبويب جديدة، فقد كتبت إضافة صغيرة لتقديم جميع ملفات PDF المحلية باستخدام content-disposition: inline:




