حسنًا، اعتقد @hellekin أن هذا يستحق موضوعًا خاصًا به. لست متأكدًا تمامًا من أنه جاهز لذلك، لكن ها هو. سألقي نظرة على الأمور في بداية الأسبوع القادم وسأحاول التأكد من أنه يبدو شيئًا يمكن للآخرين استخدامه حقًا. ![]()
كما قال:
حسنًا، اعتقد @hellekin أن هذا يستحق موضوعًا خاصًا به. لست متأكدًا تمامًا من أنه جاهز لذلك، لكن ها هو. سألقي نظرة على الأمور في بداية الأسبوع القادم وسأحاول التأكد من أنه يبدو شيئًا يمكن للآخرين استخدامه حقًا. ![]()
كما قال:
@pfaffman لقد حاولت استخدام الإعداد التالي:
home_url_override إلى https://thx.zoethical.org/TransHack_·Xist·nce… location = /TransHack_·Xist·nce… {
default_type text/html;
alias /srv/www/zoethical.org/thx/home.html;
}
يعمل استدعاء الملف مباشرة، لكن استدعاء https://thx.zoethical.org يفشل. ونظرًا لأنني لاحظت فحصًا للروابط الدائمة (permalinks)، حاولت إضافة رابط دائم لـ /. لكن ذلك لم ينجح أيضًا. هل قد تكون هذه مشكلة تتعلق بالذاكرة المؤقتة (cache)؟
للعلم، إليك محتوى ملف home.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> TransHack ·Xist·nce… </title>
<link rel="stylesheet" href="/thx.css">
</head>
<body class="thx home">
<header>
<h1>THX</h1>
</header>
<section id="agora">
<h2><a href="https://thx.zoethical.org/c/agora/1">Agora</a></h2>
<d-topics-list discourse-url="https://thx.zoethical.org" per-page="5" category="1"></d-topics-list>
</section>
<section id="fonderie-de-fiction">
<h2><a href="https://thx.zoethical.org/c/fonderie-de-fiction/7">Fonderie de fiction</a></h2>
<d-topics-list discourse-url="https://thx.zoethical.org" per-page="5" category="7"></d-topics-list>
</section>
<script src="https://thx.zoethical.org/javascripts/embed-topics.js"></script>
</body>
</html>
تعديل: أعتقد أن المشكلة قد تكون بسبب حاجة النسخة إلى تسجيل الدخول (SSO)، وبالتالي يحدث خلل في هذه الحالة. قد أكون مستعدًا لإجراء المزيد من الاختبارات بما في ذلك فتح النسخة بشكل أكبر. بعد جعل الموقع عامًا، ما زلت أحصل على رسالة “عفوًا! الصفحة غير موجودة أو خاصة.” عند الوصول إلى الصفحة الرئيسية. هل لديك أي فكرة عن السبب؟
هل الصفحة الرئيسية التي تقوم بإعدادها على موقع discourse الخاص بك؟ أعتقد أنك تريد وضع الرابط فقط الذي يبدأ بـ /.
أوه، إذن يجب أن يكون الملف هو الافتراضي — عادةً index.html؟
في الواقع، إنه يعمل! المكون يتوقع أن يكون عنوان URL لملف index، أليس كذلك؟
كل ما فعلته هو إعادة تسمية home.html إلى index.html وتغيير إعدادات Nginx إلى:
# المزيد من الإعدادات...
root /srv/www/zoethical.org/thx;
index index.html; # <- هذا مهم
location = /TransHack_·Xist·nce… {
default_type text/html;
alias /srv/www/zoethical.org/thx/index.html; # <- ويتطابق
}
location / {
# سحر nginx لمحاولة الملف المحلي قبل التحويل...
try_files $uri $uri/ $uri.html @discourse;
}
location @discourse {
# التحويل العادي لـ Discourse
}
إذا كنت تستخدم صفحة ثابتة على نفس الموقع الذي يعمل عليه مثيل Discourse، فتأكد من أن خادم الويب الخاص بك يقرأ الملف(ات) الثابت(ة) — مثل ملفات CSS ذات الصلة — قبل تحويل الطلبات إلى Discourse. تادرا!
شكرًا لك @pfaffman!
في الواقع، لا يزال هناك خطأ: على الرغم من أن استدعاء عنوان URL https://thx.zoethical.org يعمل من الخارج، إلا أن النقر على الشعار داخل Discourse لا يؤدي إلى إعادة توجيه الصفحة المُعدّلة. لاحظت وجود فحص للروابط الدائمة (permalink)، لذا جربت عدة خيارات، وجميعها فشلت:
https://thx.zoethical.org إلى /index.htmlhttps://thx.zoethical.org إلى /TransHack_·Xist·nce…/index.html إلى /TransHack_·Xist·nce…/TransHack_·Xist·nce… في إعدادات الواجهة الأماميةcustom_url وتوجيهه إلى عنوان URL خارجيأعتقد أن المشكلة ناتجة عن أن السكربت لا يحاول إعادة تحميل التطبيق بالكامل عند النقر على الشعار، بل يتوقع أن يكون الرابط الداخلي مرفقًا بالمسار العلوي.
أتوقع أنه عندما يشير إما homepage_url_override أو رابط دائم (مثل custom_url) إلى عنوان URL مطلق، يتم إعادة تحميل الصفحة بالكامل.