В чем разница между pelicanconf и publishconf при использовании Pelican?
Я использовал pelican-quickstart для создания статического веб-сайта, который поставляется по умолчанию с pelicanconf и publishconf. У меня есть переменная GOOGLE_ANALYTICS в моем publishconf, но когда я публикую свою статическую страницу в Github Pages, используя этот фрагмент:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '{{ GOOGLE_ANALYTICS }}']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
, _setAccount становится пустой строкой.
Должен ли я переместить GOOGLE_ANALYTICS из publishconf в pelicanconf? Какая разница между ними?
2 ответа
Как человек, который в первую очередь раздвоил файл настроек Pelican, я рекомендую подумать о двух основных режимах работы: локальная разработка и развертывание производства (т. Е. pelicanconf.py
а также publishconf.py
соответственно).
перемещение GOOGLE_ANALYTICS
от publishconf.py
в pelicanconf.py
не рекомендуется При локальной разработке настройки для таких вещей, как Google Analytics и Disqus сознательно не учитываются. pelicanconf.py
по дизайну. Включение этих параметров в локальное тестирование может иметь неблагоприятные последствия: неточная статистика сайта, ложные комментарии и другие непредвиденные побочные эффекты.
Когда пришло время опубликовать ваш сайт, тогда, конечно, вы хотите, чтобы эти настройки были включены. Способ сделать это - обеспечить publishconf.py
ссылка на время публикации:
pelican content -s publishconf.py
Если вы используете инфраструктуру автоматизации Fabric или Make, которая "оборачивает" pelican
Команда, вы могли бы вместо этого использовать:
fab publish
... или же...
make publish
Я рекомендую внимательно посмотреть, как именно вы публикуете свой сайт, и убедиться, что соответствующий файл настроек используется при локальной разработке и развертывании в рабочей среде, соответственно.
Что вы определяете в publishconf.py
переопределяет те же определения в pelicanconf.py
,
Но обратите внимание, что publishconf.py
используется только в двух случаях:
- Когда вы используете
make publish
(или одна из других команд make) для создания вашего сайта. - Когда вы явно указываете его в качестве файла конфигурации, который будет использоваться (т.е.
pelican -s publishconf.py content_dir
).
Так что если вы создаете свой сайт с pelican
команда, а не явно указывать ваш файл конфигурации, только pelicanconf.py
будет использоваться; Таким образом, вам понадобится GOOGLE_ANALYTICS
переменная, чтобы появиться там.