Backbone: Sensitivitas kasus perutean

Dibuat pada 12 Apr 2015  ·  5Komentar  ·  Sumber: jashkenas/backbone

Harus ada opsi untuk mengatur rute menjadi peka huruf besar-kecil atau tidak

Sesuatu seperti ini

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

Semua 5 komentar

Gunakan regex untuk rute Anda dan tandai i (tidak peka huruf besar/kecil). Contoh: /regex/i

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

Anda dapat secara manual menambahkan rute regex case-insensitive di dalam #initialize .

Saya memahami spesifikasi untuk URL menentukan sensitivitas huruf besar/kecil, tetapi fakta bahwa solusi Anda memerlukan sedikit penyimpangan dari cara normal rute yang ditentukan dapat menyebabkan banyak sakit kepala. Ada banyak sekali perangkat lunak web yang menyimpang dari spesifikasi resmi karena ternyata spesifikasi resmi tidak mempertimbangkan beberapa kasus penggunaan yang penting. Saya tidak menyarankan Anda menyimpang dari spesifikasi dalam perilaku default Anda, tetapi tidak menawarkan opsi untuk mematikan sensitivitas huruf besar-kecil karena "itulah spesifikasinya" mengabaikan semua permintaan dunia nyata yang sebenarnya untuk perilaku itu. Kami menjalankan .NET di IIS, yang keduanya tidak menuntut URL peka huruf besar/kecil, sehingga mengharuskan semua pengembang kami untuk kembali dan memperbaiki ribuan URL yang tersebar di seluruh proyek hanya untuk memenuhi spesifikasi saja tidak akan terjadi. Ada banyak pertanyaan tentang ini, orang-orang memposting peretasan dan solusi online, semua karena Anda memprioritaskan spesifikasi W3C daripada pengguna dunia nyata yang sebenarnya.

Jika Anda tidak mengizinkan ini sebagai opsi, setidaknya paparkan kode terkait di tulang punggung (yang saat ini sedang ditutup) sehingga kami dapat menimpa perilaku ini tanpa mengubah sumber aslinya.

Faktanya, spesifikasi tidak benar-benar mengatakan bahwa URL peka huruf besar-kecil:

"URL _secara umum_ peka huruf besar/kecil (dengan pengecualian nama mesin). Mungkin ada URL, atau bagian dari URL, di mana huruf besar/kecil tidak masalah , tetapi mengidentifikasi ini mungkin tidak mudah. ​​Pengguna harus selalu mempertimbangkan bahwa URL adalah huruf besar/kecil -sensitif. /u"

"Secara umum" != "harus." Dikatakan bahwa pengguna harus selalu menganggap mereka peka huruf besar/kecil, tetapi itu karena jika tidak, mereka mungkin tidak benar jika router/server dikonfigurasi untuk sensitivitas huruf besar/kecil.

Saya merasa jika Apache dapat dikonfigurasi untuk case-insensitivity di luar kotak, Backbone harus dengan cara yang sama.

Solusi ini juga tidak membantu dalam kasus di mana root router adalah yang berisi kesalahan kasus.

Misalnya, jika aplikasi tidak berada di akar domain, seperti dalam kasus www.example.com/MyApp , maka solusi regex Anda tidak akan membantu saat pengguna mengetik www.example.com/myapp .

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

jashkenas picture jashkenas  ·  7Komentar

gfranko picture gfranko  ·  18Komentar

omenking picture omenking  ·  10Komentar

tribalvibes picture tribalvibes  ·  11Komentar

rubiii picture rubiii  ·  12Komentar