Получение информации о статических файлах в Python App Engine;обходные - PullRequest
1 голос
/ 20 января 2010

Я работаю над проектом App Engine, который будет иметь настраиваемые темы.Я хотел бы иметь возможность использовать темы JQuery UI.Проблема в том, чтобы выяснить, как будет называться CSS-файл.(Как правило, «jquery-ui-1.7.2.custom.css». Номера версий будут меняться, и люди склонны переименовывать вещи, но должен быть только один файл CSS, и я согласен, что это является ошибкой, еслипо какой-то причине их два или более.) Поскольку это статический файл (статические файлы загружаются в App Engine отдельно от остальных ресурсов приложения), я не могу просто glob каталог для файла CSS.Я не могу просто предположить, что это жестко запрограммировано, и я действительно не хочу делать это настройкой конфигурации, потому что это плохой пользовательский опыт.

Гвидо велел мне ссылаться на него так, чтобы App Engine виделдве копии и могут рассматривать одну как статическую, а другую как ресурс приложения, но символические ссылки не работают в Windows, и, поскольку в конечном итоге это будет открытый исходный код, я не могу контролировать, какой SDK использует пользователь.Еще одно предложение заключалось в использовании сценария развертывания, но у пользователей Mac есть эта приятная кнопка «Развернуть» в их версии SDK, и я бы предпочел не говорить им: «Ой, извините за неудобства, но вы можетеНе используйте это для этого проекта. "

Мне явно нужно готовое решение для этого, но я в растерянности.У кого-нибудь есть хорошие предложения, как получить пользовательскую тему пользовательского интерфейса jQuery из ThemeRoller в приложение App Engine?Некоторая постобработка уже необходима, потому что единственные файлы в zip-файле, которые вам дает ThemeRoller, находятся в каталоге "css".Может быть, я смогу написать что-то, что будет принимать необработанную тему в качестве входных данных и выкладывать что-то полезное с другой стороны (трюк со временем развертывания, но как-то менее неудобный для пользователя).Хитрость здесь в презентации - я хочу, чтобы пользователь проводил как можно меньше времени в командной строке.Идеальное решение предполагает, что человек, выполняющий эту задачу, по большей части нетехнический.Никакая часть решения не может быть намного сложнее, чем установка чего-либо вроде WordPress или Drupal, и в идеальном мире это должно быть намного проще.

1 Ответ

1 голос
/ 21 января 2010

Чтобы выполнить то, что вы просите, я бы использовал хранилище данных для обслуживания файлов CSS. Поскольку это позволило бы легко перечислять, сортировать и даже модифицировать и загружать.

Кроме этого, ваши следующие лучшие варианты - хранить данные CSS внутри скрипта (словарь, где имя файла - это имя ключа, а код CSS - это значение). Или, как вы предложили, запустить сценарий перед развертыванием в AppEngine.

Лично я бы пошел на сохранение в опции хранилища данных, так как это позволит значительно больше пользовательских настроек (например, каждый пользователь может предоставить свой собственный файл CSS), просто обязательно используйте memcache, чтобы избежать необходимость доступа к хранилищу данных, когда это возможно (что должно быть очень распространенным явлением), а также использование заголовков HTTP, чтобы сообщить браузеру локально кэшировать файл CSS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...