在Python App Engine中获取有关静态文件的信息;解决方法

时间:2010-01-20 04:20:33

标签: python google-app-engine jquery-ui themes

我正在开发一个可定制主题的App Engine项目。我希望能够使用jQuery UI主题。问题在于弄清楚CSS文件的名称。 (通常,“jquery-ui-1.7.2.custom.css”。版本号会改变,人们倾向于重命名,但是应该只有一个CSS文件,如果它是一个错误条件,我很好由于某种原因,有两个或更多。)因为它是一个静态文件(静态文件与应用程序的其余资源分开上传到App Engine),我不能只是glob CSS文件的目录。我不能只假设它是硬编码的,我真的不想让它成为配置设置,因为这是一个糟糕的用户体验。

Guido告诉我将其符号链接,以便App Engine看到两个副本,可以将其中一个视为静态,另一个视为应用程序资源,但符号链接在Windows上不起作用,因为这最终将是开源的,我可以控制用户使用的SDK。另一个建议是使用部署时脚本,但Mac用户在他们的SDK版本中有这个漂亮的“部署”按钮,我宁愿不必告诉他们,“哦,嘿,很抱歉给您带来不便,但你可以不要用这个项目。“

我显然需要一个开箱即用的解决方案,但我不知所措。任何人都有关于如何从ThemeRoller和App Engine应用程序中获取自定义jQuery UI主题的任何好建议?已经需要一些后期处理,因为ThemeRoller给你的zip文件中的唯一文件位于“css”目录中。也许我可以写一些以原始主题作为输入并在另一方面吐出有用的东西(部署时脚本技巧,但不知何故用户不友好)。这里的技巧是演示 - 我希望用户尽可能少花时间在命令行上。理想的解决方案假设执行此任务的人员大部分都是非技术性的。解决方案的任何部分都不会比安装像WordPress或Drupal这样的东西困难得多,而且在一个完美的世界中,它应该更容易。

1 个答案:

答案 0 :(得分:1)

要完成您的要求,我会使用数据存储区来提供CSS文件。因为这样可以轻松列出,排序甚至修改和上传。

除此之外,您的下一个最佳选择是将CSS数据存储在脚本中(文件名是键名的字典,CSS代码是值)。或者,正如您所建议的那样,在部署到AppEngine之前运行脚本。

就个人而言,我会选择存储在数据存储区中的选项,因为它将允许更多的用户自定义(例如每个用户都能够提供自己的CSS文件),只需确保使用memcache来避免需要尽可能访问数据存储区(这应该是非常常见的事情),以及使用HTTP标头告诉浏览器在本地缓存CSS文件。