2013-05-25 2 views
0

У меня есть два сайта с использованием Django-CMS. Они используют один и тот же код и одну и ту же базу данных, причем их отличает SITE_ID.Django-CMS 2.4 страницы с SITE_ID 2 найдены только в том случае, если вы вошли в систему

На сайте с SITE_ID = 1 все в порядке.

На сайте с SITE_ID = 2, некоторые страницы, которые я публикую (с помощью панели администратора) можно увидеть только на сайте, если вы вошли в систему. В противном случае они дают мне 404 ошибка с сообщением, как

CMS: Page not found for "test" 

Другие страницы в порядке - в частности, домашняя страница и страницы с аппендиками.

Если у меня установлен DEBUG = False, я получаю 404 ошибки на всех страницах моего сайта!

Это происходит как в prod, так и на моем dev-сервере. На самом деле это происходит даже на полностью ванильном сайте, который я только что создал.

Я не выбрал «логин» для любой из страниц.

Как я могу сделать страницы видимыми для всех?

Информация о версии: Я использую Django-CMS 2.4.1 и Django 1.5.1. Я также обновил их до mptt 0.5.5, хотя Django-CMS специально устанавливает только mptt 0.5.2 (см. this post для чего). Однако, когда я переустановил mptt 0.5.2 на моем dev-сервере, проблема осталась.

ответ

2

Я поднял это как issue и теперь есть ответ - это 'public': False строка в этом коде:

CMS_LANGUAGES = { 
    1: [ 
     { 
      'code': 'en', 
      'name': gettext('English'), 
      'public': True, 
     }, 
    ], 
    'default': { 
     'fallbacks': ['en',], 
     'public': False, 
     } 
} 

Ключ «1» является SITE_ID, так что выше говорит, чтобы скрыть все сайты после номер 1 от общественности.

Таким образом, решение состоит в том, чтобы добавить запись с ключом SITE_ID 2 в настройке CMS_LANGUAGES.

1

Я думаю, вам нужно сначала взглянуть на настройку ALLOWED_HOSTS (https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts). Вероятно, это причина, по которой вы получаете ошибки при выключении DEBUG. (хотя, я думал, что не имеет законных ALLOWED_HOSTS будет производить 500 ошибок, а не 404s.).

+0

Спасибо - да, у меня есть 'ALLOWED_HOSTS'. Я уверен, что это правильно, так как я вижу, что сайт 1 отлично в том же месте. Я поднял билет на https://github.com/divio/django-cms/issues/1881. –