2014-04-30 61 views
0

我刚刚注意到,当我将应用程序从本地机器部署到GAE时,某些.jpg和.js文件未上传。之前我没有查看这些文件的问题,但是我突然发现昨天发生了这种变化。运行GAE 1.9.3 w/Python 2.7Google App Engine python无法上传某些静态文件

至于.jpg文件,它看起来有一些不是正在上传。

我不知道为什么突然我无法上传,因此显示我的webapp的某些关键静态文件。

至于观察:
1,本地主机有没有问题,显示图像或运行.js文件
2 YAML尚未在所有周
3,部署工作得很好,直到上周改变。我试着上传我们以前没有问题的旧代码现在有同样的问题。
4 - 我在上传脚本中看到很多Could not guess mimetype for ......错误
5 - 默认情况下,我在PyDev + GAE + EGIT中使用Eclipse。但我用GAELauncher尝试了相同的结果
6-只有基于照片的图像没有上传;我看到插图很好。在服务网站上,我得到:GET http://mysite.appspot.com/img/home-concept-item-1.jpg 404 (NOT FOUND)错误。再次,只有少数人不会完成任务(准确的说是六个),还有两个.js;其他人都很好...
7-从上面,很难相信我造成了这个问题,但有些事情需要改变。

这里是我的YAML(再次,没有改变几个星期之前工作得很好):

application: myapp 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: yes  

handlers: 
- url: /img/favicon\.ico 
    static_files: favicon.ico 
    upload: favicon\.ico 
- url: /css 
    static_dir: css 
- url: /js 
    static_dir: js 
- url: /vendor 
    static_dir: vendor 
- url: /img 
    static_dir: img 

- url: .* 
    script: main.app 

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

请指教。您的意见将不胜感激!

+2

您需要提供非常多的信息。你怎么知道他们没有上传,你有什么证据?你确定你不能下载它们吗?你的'app.yaml'很可能是原因,或者如果你期望的图像改变了,就可以缓存。 –

+0

@TimHoffman谢谢。您的建议已经发布并更新了发布。我看到404 Not Found错误,但发生在仅基于照片的图像和两个.js – jbro

+0

“无法猜测mimetype”?该消息有助于查明。 From:[link](https://developers.google.com/appengine/docs/python/config/appconfig#Python_app_yaml_Static_file_handlers)mime types:“如果指定,则此处理程序提供的所有文件将使用指定的MIME类型提供。如果未指定,则文件的MIME类型将从文件的文件扩展名派生。“所以,请检查扩展强制MIME_TYPE,您可以在app.yaml中的静态文件处理程序声明它: - 网址:/ JS static_dir:JS MIME_TYPE:‘文/ JavaScript的’ – GAEfan

回答

0

检查您的app.yaml文件的skip_files:选项。确保你没有一些过于贪婪的表情,如(*.j*)

+0

我认为yaml看起来很好,并不是所有的.jpg或.js都“丢失”。 – jbro

1

此外,如果在app.yaml中有任何静态文件重新映射,则推送部署中会出现静态文件丢失的错误。你使用的是git repo和ptd?如果是这样,请尝试从命令行或GAELauncher进行部署。

转储缓存,检查skip_files在app.yaml中

+0

谢谢。有没有一种方法(命令)来清除服务器上的所有内容,然后再次尝试上传新的内容?如果所有的克隆都是我的本地主机,我应该看不到任何问题。这里)? – jbro

+0

通过浏览器首选项清除浏览器缓存,或在Chrome中使用隐身模式,或切换浏览器。在应用程序控制台中,您可以清除内存缓存,以防您有一些模板缓存。此外,应用引擎网址区分大小写。检查一下。部署时是否有任何日志消息? – GAEfan

0

添加上传的app.yaml因为你需要点* .js文件可以是正则表达式,但你需要检查一下。

见你的代码,例如语法:

- url: /img/favicon\.ico 
    static_files: favicon.ico 
    upload: favicon\.ico 

见我的代码:

- url: /static/audio/(.*\.ogg) 
    mime_type: application/ogg 
    static_files: static/audio/\1 
    upload: static/audio/(.*\.ogg) 
相关问题