2015-04-23 81 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是需要匹配完整路徑而不是目錄或前綴的正則表達式。

相關問題