أعتقد أن هذه مشكلة تتعلق بطريقة إنشاء خريطة المصدر، وسببها هذا الطلب: DEV: Bump uglifyjs by romanrizzi · Pull Request #7834 · discourse/discourse · GitHub.
في السابق، كانت تُستخدم الخيارات النسبية -p، لذا كانت مسارات خريطة المصدر تبدو مثل [‘admin…js.map’]. بدءًا من الإصدار 2.4.beta9، لم يعد الخيار -p متاحًا بسبب الانتقال إلى uglify 3، لذا أصبحت مسارات خريطة المصدر مطلقة مثل [‘/var/www/discourse/public/assets/admin…js.map’]. وهذا تسبّب في ظهور أخطاء 404 لخريطة المصدر أثناء التصحيح، لأن الملف الفعلي كان موجودًا في /assets، لكن الخريطة أشارت إلى أنه موجود في /var/www/…/assets.
الحل البديل الذي وجدته هو تعديل lib/tasks/asset.rake لإضافة خيار base إلى معلمة خريطة المصدر، لتصبح بالشكل التالي:
base = assets_path + ((d = File.dirname(from)) == "." ? "" : "/#{d}")
cmd = <<~EOS
uglifyjs '#{assets_path}/#{from}' -m -c -o '#{to_path}' --source-map "base='#{base}',root='#{source_map_root}',url='#{source_map_url}'" --output '#{to_path}'
EOS
لا يمكنني ضمان نجاح هذا الحل للجميع، لكنه يسمح لي بالتصحيح عبر خرائط المصدر دون ظهور أخطاء 404.