1

我正在做自己的 GAE 项目,

并试图将我的自定义 javascript 文件包含到我的模板文件之一中。

目录结构如下:

  • 主目录
  • 应用程序.yaml
  • 主文件
  • 模板
    • base.html
  • javascript
    • 我的javascript.js

我正在尝试从 base.html 中包含 myjavascript.js

在我的 app.yaml 中,我指定:

-url: /javascript
 static_dir: javascript

在 base.html 中,

<script src = 'some src'> </script>

对于“一些 src”,我尝试过:

../javascript/myjavascript.js
/javascript/myjavascript.js
javascript/myjavascript.js

但它总是给我 404(找不到文件)错误。

我也试过 Jinja2 的 {% include /javascript/myjavascript.js %} 它给了我

IOError: [Errno 13] 文件不可访问 GAE

任何人都可以帮我解决正在发生的事情吗?

谢谢

4

3 回答 3

2

处理程序的顺序很重要。确保您的javascript处理程序在处理程序之前main。例子:

handlers:
- url: /javascript
  static_dir: javascript
- url: .*
  script: main.app

来自谷歌文档

模式按照它们在 app.yaml 中出现的顺序从上到下进行评估。模式与 URL 匹配的第一个映射是用于处理请求的映射。

于 2013-10-06T00:25:48.407 回答
1

在你的 yaml 文件中试试这个

- url: /(.*\.(gif|png|jpg|ico|js|css|ttf|pdf))
  static_files: \1
  upload: (.*\.(gif|png|jpg|ico|js|css|ttf|pdf))

代替:

-url: /javascript
 static_dir: javascript

它将包括由管道分隔的所有文件,但不会降级您的应用程序

如果您的 base.html 在您的模板目录中并且您的 javascript 目录与模板(您的情况)在同一目录中,您应该使用 ../javascript/myjavascript.js 路径,因为“..”保留在父目录中,对于 base.html 文件,javascript 目录位于父目录中...

于 2013-10-04T06:25:20.727 回答
0

这是我的 app.yaml 文件之一:

application: name-of-app
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico
- url: /(.*\.(gif|png|jpg|ico|js|css|ttf|pdf))
  static_files: \1
  upload: (.*\.(gif|png|jpg|ico|js|css|ttf|pdf))
- url: .*
  script: name-of-app.app

libraries:
- name: webapp2
  version: latest                                                                      
- name: jinja2                                                                  
  version: latest                                                               
- name: markupsafe                                                              
  version: latest   

尝试将它与您的 app.yaml 相关联。

于 2013-10-05T07:47:15.950 回答