Backbone: حساسية حالة التوجيه

تم إنشاؤها على ١٢ أبريل ٢٠١٥  ·  5تعليقات  ·  مصدر: jashkenas/backbone

يجب أن يكون هناك خيار لتعيين المسارات لتكون حساسة لحالة الأحرف أم لا

شيء من هذا القبيل

var Router = Backbone.Router.extend({
    routes: {
        "/": "home"
    },
    ignoreCase:true
});
change wontfix

ال 5 كومينتر

استخدم regex لمسارك والعلامة i (غير حساس لحالة الأحرف). Es .: / regex / i

var Router = Backbone.Router.extend({
    routes: {
        /regex/i: "home"
    }
    ....
});

يمكنك إضافة مسارات regex غير حساسة لحالة الأحرف يدويًا داخل #initialize .

أتفهم أن المواصفات الخاصة بعناوين URL تحدد حساسية حالة الأحرف ، ولكن حقيقة أن الحل الذي تقدمه يتطلب قدرًا كبيرًا من الانحراف عن الطرق العادية التي يتم بها تحديد المسارات يمكن أن يسبب الكثير من المتاعب. هناك أجزاء لا حصر لها من برامج الويب التي انحرفت عن المواصفات الرسمية لأنه اتضح أن المواصفات الرسمية لم تأخذ في الاعتبار بعض حالات الاستخدام المهمة. لا أقترح عليك الخروج عن المواصفات في سلوكك الافتراضي ، ولكن لا أقترح خيار إيقاف تشغيل حساسية حالة الأحرف لأن "هذه هي المواصفات" تتجاهل كل الطلب الفعلي الواقعي على هذا السلوك. نحن نقوم بتشغيل .NET على IIS ، ولا يتطلب أي منهما عناوين URL حساسة لحالة الأحرف ، لذا فإن مطالبة جميع مطورينا بالعودة وإصلاح كل الآلاف من عناوين URL المنتشرة في جميع أنحاء المشروع فقط لتلبية المواصفات لن يؤدي إلى يحدث. هناك أسئلة تجاوز المكدس حول هذا الأمر ، حيث ينشر الأشخاص الاختراقات والحلول البديلة عبر الإنترنت ، كل ذلك لأنك تعطي الأولوية لمواصفات W3C على المستخدمين الفعليين في العالم الحقيقي.

إذا لم تسمح بهذا كخيار ، فقم على الأقل بكشف الكود ذي الصلة في العمود الفقري (والذي هو حاليًا في حالة إغلاق) حتى نتمكن من تجاوز هذا السلوك دون تعديل المصدر الأصلي.

في الواقع ، لا تشير المواصفات في الواقع إلى أن عناوين URL حساسة لحالة الأحرف:

"عناوين URL _ بشكل عام_ حساسة لحالة الأحرف (باستثناء أسماء الأجهزة). قد تكون هناك عناوين URL ، أو أجزاء من عناوين URL ، حيث لا تهم الحالة ، ولكن قد لا يكون تحديدها أمرًا سهلاً. يجب على المستخدمين دائمًا اعتبار أن عناوين URL عبارة عن حالة -حساسة. / u "

"بشكل عام"! = "يجب أن تكون." تقول أنه يجب على المستخدمين دائمًا اعتبارهم حساسين لحالة الأحرف ، ولكن هذا لأنه إذا لم يفعلوا ذلك ، فقد لا يكونون بشكل صحيح إذا تم تكوين جهاز التوجيه / الخادم لحساسية الحالة.

أشعر أنه إذا كان من الممكن تهيئة أباتشي للحساسية لحالة الأحرف خارج الصندوق ، فيجب أن يكون العمود الفقري بنفس الطريقة.

لا يساعد هذا الحل أيضًا في الحالات التي يكون فيها جذر جهاز التوجيه هو ما يحتوي على خطأ الحالة.

على سبيل المثال ، إذا لم يكن التطبيق موجودًا على جذر المجال ، كما في حالة www.example.com/MyApp ، فلن يساعدك حل regex عندما يكتب المستخدم في www.example.com/myapp .

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات