2010-01-20 37 views
1

我正在开发一个可定制主题的App Engine项目。我希望能够使用jQuery UI主题。问题是搞清楚什么CSS文件将被命名。 (通常,“jquery-ui-1.7.2.custom.css”。版本号会改变,人们倾向于重命名事物,但应该只有一个CSS文件,并且我确定它是一个错误条件if由于某种原因,有两个或更多)。因为它是一个静态文件(静态文件与应用程序资源的其余部分分开上传到App Engine),所以我不能只是glob CSS文件的目录。我不能假设它是硬编码的,我真的不希望将其设置为配置设置,因为这是一种糟糕的用户体验。在Python App Engine中获取有关静态文件的信息;解决方法

Guido告诉我符号链接它,以便App Engine可以看到两个副本,并且可以将一个视为静态而另一个视为应用程序资源,但符号链接在Windows上不起作用,并且由于这最终将是开源的,因此我无法控制用户使用哪个SDK。另一个建议是使用部署时脚本,但Mac用户在他们的SDK版本中有这个很好的“部署”按钮,我宁愿不必告诉他们:“噢,对于给您带来的不便,感到抱歉,但是您可以这个项目不会使用它。“

我明显需要一个开箱即用的解决方案,但我很茫然。任何人有什么好的建议,如何获得一个自定义的jQuery UI主题出ThemeRoller和App Engine应用程序?一些后期处理已经是需要的了,因为ThemeRoller提供的zip文件中的唯一文件位于“css”目录中。也许我可以写一些以原始主题作为输入的东西,并在另一方面吐出一些有用的东西(部署时间脚本技巧,但不太方便用户不友好)。这里的诀窍是呈现 - 我希望用户尽可能少地在命令行上花费时间。理想的解决方案是假设执行此任务的人在大多数情况下是非技术性的。解决方案的任何部分都不会比安装WordPress或Drupal更困难,并且在完美的世界中,它应该是方式,更容易。

+0

为什么你需要知道CSS文件的名称?是不是只能从模板中引用CSS,这些模板不是静态内容,因此您可以找到? – 2010-01-20 11:10:28

+0

因为这是一个可以由用户更改的主题。它不是硬编码的。我想向用户展示可用主题的下拉框。 CSS文件的路径必须从主题名称中建立。 – 2010-01-20 18:49:54

回答

1

要完成您所问的内容,我将使用数据存储区来提供CSS文件。由于这将允许轻松列表,分类,甚至修改和上传。

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

就我个人而言,我会去存储在数据存储选项,因为它会允许更多的用户定制(比如每个用户能够提供自己的CSS文件),只要确保使用memcache来避免在可能的情况下需要访问数据存储(这应该是很常见的事情),并且使用HTTP头告诉浏览器在本地缓存CSS文件。

+0

将CSS数据存储在脚本中将不起作用,因为这不能解决使非技术用户非常容易处理的问题。我一直倾向于服务于数据存储或blob商店,但我担心性能特点。这些可能是应用程序中需求最多的文件之一。 – 2010-01-21 19:16:54

+0

假设您在将CSS文件提供给客户端的脚本中设置指定缓存行为的http标头,它应该没问题(因为浏览器不会在每次页面加载时都请求它)。结合memcache,应该没有问题。我不会在我自己的应用程序中这样做。 – 2010-01-23 04:36:55

相关问题