2017-08-07 48 views
0

我偶然發現了一個非常奇怪的問題。開發環境是Django 1.10 & django-cms 3.4.4。當我嘗試在Chrome加載本地主機& Firefox的一切工作正常,但如果我嘗試在Safari瀏覽器中打開它,它失敗NoReverseMatch在/,也未能與隨機的網址。我也試圖Django的1.10 Django的CMS 3.4.4 - NoReverseMatch某些瀏覽器

curl http://localhost:8000/ 

,它工作正常。 也在Windows和不同的瀏覽器上嘗試過,並且一些瀏覽器出現同樣的錯誤也會失敗。 有人有任何想法可能是什麼問題? 謝謝!

P.S.

Reverse for 'model' with arguments '(u'bmw',)' and keyword arguments '{}' not found. 0 pattern(s) tried: [] 

它似乎根本沒有加載任何網址。 0模式嘗試意味着沒有什麼裝載我猜?

+0

'curl -I http:// localhost:8000 /'return? – Alasdair

+0

HTTP/1.0 200 OK 日期:2017年8月8日星期二19:32:39 GMT 服務器:WSGIServer/0.1 Python/2.7.13 Content-Language:bg 過期時間:2017年8月8日星期二19:33: 39 GMT 有所不同:,接受語言,餅乾 的Last-Modified:星期二,2017年8月8日19時32分39秒GMT 緩存控制:最大年齡= 60 X框選項:SAMEORIGIN 內容類型:爲text/html; charset = utf-8 Set-Cookie:csrftoken = cjyVDImNRxEsijnKlMHrzAHgXSObdhxfWzTY5VTehmAWS6HRU5P99RJ2Wq0i98bj;到期=星期二,07-Aug-2018 19:32:39 GMT;最大年齡= 31449600; Path =/ Set-Cookie:django_language = bg;到期=星期三,08-Aug-2018 19:32:39 GMT;最大年齡= 31536000;路徑= /' –

回答

1

我想我找到了。長話短說

默認的cms配置爲使用英語作爲主要語言,但我希望我的主要語言是保加利亞語。我將CMS配置爲支持這兩種語言,並且我已將保加利亞語設爲默認,並禁用英語。然後,我就在urls.py擺脫i18n_patterns()包裝的擺脫/en//bg/等前綴。到現在爲止還挺好。管理網站效果很好。只有一種語言 - 保加利亞語,附有頁面和自定義應用程序。當我在Safari上加載錯誤的URL前端以查看所有支持的URL時,我看不到任何附加的應用程序併爲它們提供url。如果我對Chrome執行相同操作,則會顯示所有附加應用程序的網址。事實證明,Chrome會加載保加利亞頁面配置和所有已配置的應用程序,但Safari會加載已禁用的英文頁面,並且沒有附加的應用程序。

我的第一個猜測是Accept-Language頭。 Safari使用Accept-Language: en,但其他瀏覽器發送bg。我試圖篡改數據,但沒有發生任何事情。然後,我注意到有一個由實際確定的語言LocaleMiddleware使用django_language cookie的存在。當我禁用中間件時,一切都像魅力一樣。

謝謝!