1 回答

TA貢獻(xiàn)1744條經(jīng)驗 獲得超4個贊
仔細(xì)檢查 GAE 日志條目以獲取所請求的確切 URL(并被 404 拒絕)。這通常需要與您的靜態(tài)處理程序的url
模式之一匹配。如果發(fā)生匹配,則由相應(yīng)處理程序的static_file
/static_dir
和upload
規(guī)范(相對于您的應(yīng)用程序的頂級目錄 - app.yaml 文件所在的位置)指定的文件應(yīng)該發(fā)生。
讓我們假設(shè)初始請求是針對/
. 這與您的第一個靜態(tài)處理程序匹配,因此www/index.html
將為您提供服務(wù)。
但是該index.html
文件引用了js/index
里面的腳本,因此另一個請求將跟隨該 URL。但是該 URL 與您的任何處理程序的模式都不匹配,因此它會得到 404。您也沒有任何名為index
.
假設(shè)在這種情況下www/js/index.js
您想要提供的實際上是您必須提供的文件:
更正文件中的
index.html
文件名引用:<script src="js/index.js"></script>
確保此引用與靜態(tài)處理程序
url
模式匹配??赡苁沁@樣的(對于每個以 結(jié)尾的請求路徑.js
將嘗試提供與該路徑匹配但相對于www/js
目錄的文件):- url: /(.*\.js)$ static_files: www/js/\1 upload: www/js/.*\.js$
或者,您可以使用可應(yīng)用于多種類型文件的方案,而不是那些以 結(jié)尾的方案.js
:
使用文件中的
www
前綴引用index.html
文件:`<script src="www/js/index.js"></script>`
重新使用您的最后一個處理程序,但向其添加通配符以
url
確保匹配下的所有內(nèi)容www
(因為www/blah
與 justwww
模式不匹配):`- url: /www/*`
也可以在沒有.js
后綴的情況下引用腳本,但是您需要一個專門用于該文件的處理程序 - 要將其映射到實際文件名,您不能使用通配符。所以我不推薦這樣做,因為它很快就會變得非常復(fù)雜。
您必須類似地考慮您需要提供的所有其他靜態(tài)元素。
添加回答
舉報