2012-09-02 135 views
3

我想要一個以「/」結尾的任何網址的請求,例如http://website.com/some_dir/以接收該目錄內的index.html文件...在我的示例中,它應該收到http://website.com/some_dir/index.html谷歌應用程序引擎yaml index.html

我有它與GAE啓動/本地服務器上本地工作的......但是當我部署它,並通過website.appspot.com訪問它失敗... 我得到的錯誤:

Error: Not Found

The requested URL /some_dir/ was not found on this server.

這是我在我的YAML:

- url:/
    static_files: staticLocation/index.html 
    upload: staticLocation/index.html 
- url: (.+)/ 
    static_files: staticLocation/\1/index.html 
    upload: staticLocation 
- url:/
    static_dir: staticLocation 

我很好奇,如何/爲什麼它本地工作很大,但不是Appspot上... 的想法,以及如何解決我的問題呢?

回答

-1

AppEngine生產服務器是區分大小寫的文件系統,請檢查兩個套管是否匹配。

0

第二條路線的'上傳'行不夠詳細,所以裏面的文件不會被部署到appengine。你想要的東西,如:

- url: (.+)/ 
    static_files: staticLocation/\1/index.html 
    upload: staticLocation/(.*) 

- url: /(.+) 
    static_files: staticLocation/\1/index.html 
    upload: staticLocation/(.+)/index.html 

(您最後的路線有相同的URL爲先,所以它永遠不會被擊中,並可能被刪除。)

0

我已確認您的問題。適用於本地,但不適用於appspot。要解決你的問題的變化:

- url: (.+)/ 
    static_files: staticLocation/\1/index.html 

- url: (.*)/ 
    static_files: staticLocation\1/index.html` 

,它應該正常工作。 (注:+變更爲*url並且除去/static_files

爲了滿足你的好奇心,你是相匹配的領先的/這樣的文件系統位置的查找是staticlocation//some_dir/index.html這對你的文件系統工作正常,因爲//坍塌下來到您的操作系統中的/。我認爲appspot的路徑查找不會摺疊//,導致不能找到您的index.html文件。

哦,順便說一句,修正第二條規則就像我提到的那樣,所以你根本不需要第一條規則,這樣就可以刪除規則。