使用谷歌应用引擎的静态样式表

时间:2013-03-14 23:48:37

标签: python google-app-engine assets

我是开发新手,所以请耐心等待:)

我决定使用jetstrap设计我的网站(引导程序的可视化设计器),下载html然后使用python编程后端并将其上传到谷歌应用引擎。

当我从jetstrap下载文件时,我有一个带有html的文件夹和一个名为assets的文件夹,里面有3个文件夹。 CSS,图片,js。

如果我用浏览器打开html,我可以看到我设计的网站。但是如果我使用python渲染它并在localhost上打开它,我会看到它没有任何CSS。

我尝试将该文件夹添加到app.yamal

application: web-development-test
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /templates/assets
  static_dir: stylesheet


- url: .*
  script: main.app

libraries:
- name: jinja2
  version: latest

templates是我的应用程序目录中的文件夹,我的所有htmls和资产都是带有css,js和images的文件夹。

来自jetstrap的html的一部分是:

<link href="assets/css/bootstrap.css" rel="stylesheet">
    <style>
      body { padding-top: 60px; /* 60px to make the container go all the way
      to the bottom of the topbar */ }
    </style>

我在那里看到了rel = stylesheet,这就是为什么我在app.yamal上添加了static_dir:stylesheet

我所做的几乎所有事情都来自在线教程。

提前谢谢!

编辑: 我的app文件夹的整个结构

google project
    app.yaml
    favicon.ico
    index.yaml
    main.py
    templates
        page1.html
        page2.html
        assets
           css
           img
           js

3 个答案:

答案 0 :(得分:2)

app.yaml中的第一个处理程序说“在URL路径/ templates / assets中提供目录样式表(可在应用程序根目录中找到)”。这可能与你想要的相反。请尝试使用此处理程序:

- url: /assets
  static_dir: templates/assets

这将使其成为例如http://localhost:8090/assets/css/bootstrap.csstemplates/assets/css/bootstrap.css返回文件。假设page1.html在//page1或类似地方提供,那么应该按照您的意愿行事。

答案 1 :(得分:2)

处理程序的顺序可能会导致问题:

url:/ stylesheets static_dir:stylesheets url:/。*脚本:helloworld.application

将取代

url:/。*脚本:helloworld.application url:/ stylesheets static_dir:stylesheets

答案 2 :(得分:1)

我遇到了同样的问题。即使是app.yaml文件中的缩进错误,我也可以看到后者的一切,here。 我修复了缩进,就是这样。