2015-04-23 63 views
0

我已经在谷歌应用引擎上部署了angularjs应用,但是存在一些与js,css,bower组件和组件目录有关的问题。 javascript和css不在Google应用引擎上投放。这是我的app目录结构。静态资产无法在谷歌应用引擎上工作

myapp 
    app 
    bower_components 
     angular-bootstrap 
     ..........etc 
    components 
     version.js 
    css 
     app.css 
    js 
     app.js 
     controllers.js 
     services.js 
     filters.js 
     directives.js 
    index.html 
    app.yaml 

这里是我的app.yaml文件内容:

application: myappid 
version: 1 
runtime: python27 
threadsafe: true 
api_version: 1 

handlers: 

url: css 
static_dir: app/css 
mime_type: text/css 

url: js 
static_dir: app/js 
mime_type: text/javascript 

url: /components 
static_files: components 
upload: components 
mime_type: text/javascript 

url: /bower_components 
static_files: /bower_components 

upload: /bower_components 
mime_type: text/javascript 

url: (.*)/.* 
static_files: app/index.html 
upload: app 

url: (.*) 
static_files: app 
upload: app 

我得到在控制台上这些错误:

INFO  2015-04-23 10:02:33,782 module.py:788] default: "GET /app/ HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,846 module.py:788] default: "GET /app/bower_components/html5-boilerplate/css/normalize.css HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,847 module.py:788] default: "GET /app/bower_components/html5-boilerplate/css/main.css HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,854 module.py:788] default: "GET /app/bower_components/angular-ui-grid/ui-grid.min.css HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,854 module.py:788] default: "GET /app/css/app.css HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,854 module.py:788] default: "GET /app/bower_components/bootstrap/dist/css/bootstrap.css HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,854 module.py:788] default: "GET /app/bower_components/angular-ui-select/dist/select.min.css HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,856 module.py:788] default: "GET /app/bower_components/select2/select2.css HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,858 module.py:788] default: "GET /app/bower_components/selectize/dist/css/selectize.default.css HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,862 module.py:788] default: "GET /app/bower_components/angular/angular.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,863 module.py:788] default: "GET /app/bower_components/angular-resource/angular-resource.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,864 module.py:788] default: "GET /app/bower_components/angular-route/angular-route.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,864 module.py:788] default: "GET /app/bower_components/html5-boilerplate/js/vendor/modernizr-2.6.2.min.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,865 module.py:788] default: "GET /app/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,868 module.py:788] default: "GET /app/bower_components/angular-ui-grid/ui-grid.min.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,869 module.py:788] default: "GET /app/bower_components/angular-ui-select/dist/select.min.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,870 module.py:788] default: "GET /app/bower_components/angular-sanitize/angular-sanitize.min.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,870 module.py:788] default: "GET /app/bower_components/selectize/dist/js/selectize.min.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,871 module.py:788] default: "GET /app/bower_components/angular-ui-router/release/angular-ui-router.min.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,874 module.py:788] default: "GET /app/bower_components/underscore/underscore.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,877 module.py:788] default: "GET /app/js/controllers.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,877 module.py:788] default: "GET /app/bower_components/angular-underscore/angular-underscore.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,877 module.py:788] default: "GET /app/js/app.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,881 module.py:788] default: "GET /app/components/version/version.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,884 module.py:788] default: "GET /app/components/version/version-directive.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,885 module.py:788] default: "GET /app/js/services.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,885 module.py:788] default: "GET /app/components/version/interpolate-filter.js HTTP/1.1" 304 - 
INFO  2015-04-23 10:02:33,885 module.py:788] default: "GET /app/js/filters.js HTTP/1.1" 304 - 

谁能解释一下什么是错的?

回答

0

没有什么不对。

您的所有来电都会返回状态码304.
304表示自上次访问请求资源以来未修改请求的资源。
304是而不是错误指示码。

很可能是您的浏览器在其缓存中仍然存在请求的结果。


Wikipedia's explanation虽然简短但很清楚。

304未修改

指示资源尚未由于由请求头的If-Modified-Since或If-无 - 匹配指定的版本 修改。 这意味着不需要重新传输资源,因为 客户端仍具有先前下载的副本。

另请参阅RFC,其中有更多的细节。

304未修改

如果客户机已经执行了条件GET请求,并且访问是 允许的,但该文件没有被修改,服务器应该 具有该状态代码进行响应。 304响应不能包含一个 消息体,因此总是在头字段后面的第一个空行 处终止。

的响应必须包括以下头字段:

  • 日期,除非其疏忽被第14.18.1如果无时钟源服务器遵循这些规则,并代理和客户端添加 自己需要的日期到任何没有收到的响应(如[RFC 2068]第14.19节规定的 ),高速缓存将正确运行 。

  • ETag的和/或内容 - 位置,如果头会被在一个200响应于相同的请求

  • 过期,缓存控制发送 ,和/或改变,如果字段值可能 不同于之前任何响应中发送的相同 变体如果条件GET使用强大的缓存验证程序(请参阅第13.3.3节),则回应不应包含其他 实体标头。否则(即条件GET使用弱验证器),响应绝不包含其他实体头;此 可防止缓存的实体和更新后的标头之间的不一致。

如果304响应表示当前没有被缓存的实体,则 缓存必须忽略的响应,并重复而不 有条件的请求。

如果缓存使用收到的304响应来更新缓存条目,则缓存必须更新条目以反映 中给出的任何新字段值。


而且阅读相关主题 What is the difference between HTTP status code 200 (cache) vs status code 304?

+0

我已经清除缓存并再次检查,当我去浏览器调试网络,并检查了CSS和JS它不存在了。 – mirfan899

+0

@ mirfan899那里不再有什么? –

+0

css和js文件有状态304,但是当我通过url访问它时,它显示了每个css和js文件的index.html。 – mirfan899

0

你在app.yaml中的URL路径选择是不正确的,你要实现的目标是什么。您正在请求带有/app/js/foo.js之类的网址的JavaScript文件。你的路由

与 'JS'

url: (.*)/.* 
static_files: app/index.html 

比赛开始与他们斜线所有路径

url: js 
static_dir: app/js 

匹配的URL路径(例如,your-app.appspot.com/app/js/app.js )并为他们返回app/index.html。

app.yaml中的url是需要匹配完整路径而不是目录或前缀的正则表达式。

相关问题