באג או פיצ׳ר?

06/05/2025

פותח פרויקט ריילס חדש, נכנס מהכרום במצב מובייל ו-בום. שגיאת 406 עם הטקסט Not Acceptable.

עכשיו אני מודה אני לא רגיל לשגיאת 406 בהקשר הזה. בדרך כלל שולחים 406 כשדפדפן מבקש סוג קובץ שהשרת לא יודע לייצר כלומר שיש בעיה בכותרות Accept, Accept-Encoding או Accept-Language. פה לא נגענו בכותרות ה Accept.

מסתבר ש Rails 7.2 הוסיפו מנגנון הגנה חדש שמגביל גישה לאתר רק לדפדפנים מודרניים. פרטים כאן:

https://guides.rubyonrails.org/72release_notes.html#add-browser-version-guard-by-default

למרות שאני מבין מאיפה זה בא חייב להודות שזה נראה יותר כמו באג מאשר כמו פיצ'ר. המגמה היום בפיתוח יישומי ווב היא לבנות יישומים פרוגרסיביים כלומר כאלה שיצליחו להיטען בכל דפדפן, גם אם על חלק מהדפדפנים החוויה תהיה פחות טובה, ולשפר את החוויה ככל שהדפדפן מתקדם יותר. הבחירה לזרוק החוצה דפדפנים ישנים כברירת מחדל בלי קשר לתוכן האתר, כולל לאתרים שכלל לא משתמשים ב JavaScript נראית תמוהה ואני מקווה שתשתנה בעתיד.

בינתיים אני מוסיף לרשימת ה Best Practices כשפותח פרויקט ריילס חדש למחוק את שורת ההגבלה מהקובץ app/controllers/application_controller.rb כלומר את השורה:

class ApplicationController < ActionController::Base
  # Only allow modern browsers supporting webp images, web push, badges, import maps, CSS nesting, and CSS :has.
  # Delete this line to allow everyone to access the site
  allow_browser versions: :modern
end