2011-01-20 6 views

답변

10

당신이 (아파치없이) dev에 서버를 실행하는 경우 :

(또한 폴더라고도 함) 디렉토리를 작성은 web.py 서버를 실행하는 스크립트의 위치에 고정했다. 그런 다음 정적 폴더에 게재 할 정적 파일을 배치하십시오.

예를 들어 URL http://localhost/static/logo.png은 이미지를 ./static/logo.png 클라이언트로 보냅니다.

참조 : http://webpy.org/cookbook/staticfiles


업데이트. 윽 ... 내가 시간의 마지막 몇이 고생

#!/usr/bin/env python 

import web 

urls = (
    '/', 'index' 
) 

class index: 
    def GET(self): 
     # redirect to the static file ... 
     raise web.seeother('/static/index.html') 

app = web.application(urls, globals()) 

if __name__ == "__main__": app.run() 
+0

thats는/static 경로에서만 파일을 제공합니다. path/ – codez

+0

으로 요청시 index.html을 제공해야합니다. @codez : 내 대답이 업데이트되었습니다. – miku

+0

이것은 web.py 앱이 앉아있는 폴더에서 직접 실행하는 경우에만 작동합니다. /path/to/my/web/app.py를 실행하고 싶다면 운이 없어. – Octopus

6

: 당신이 정말로 /에 정적 파일을 제공해야 할 경우 당신은 단순히 리디렉션을 사용할 수 있습니다! 모두 나를 위해 노력하고 있습니다

찾을 수 두 가지 솔루션 ... 1 - htaccess로의 ModRewrite 라인 전에이 줄을 추가 :

RewriteCond %{REQUEST_URI} !^/static/.* 

이는/정적/디렉토리에 대한 요청이 있는지 확인합니다 code.py 스크립트로 다시 작성하지 않습니다. 나는 web.py 구글 그룹에서이 훔친하지만를 찾을 수 없습니다 -

urls = (
    '/' , 'index' , 
    '/add', 'add' , 
    '/(js|css|images)/(.*)', 'static', 
    '/one' , 'one' 
    ) 

class static: 
    def GET(self, media, file): 
     try: 
      f = open(media+'/'+file, 'r') 
      return f.read() 
     except: 
      return '' # you can send an 404 error here if you want 

참고 : -

2 code.py에서 정적 처리기와 여러 각 디렉토리에 대한 URL 항목을 추가 더 이상 게시하지 마세요! 이들의

하나는 web.py에 대한 템플릿 내에서 내가 "정적"에 넣어 웹 페이지에 직접 전화 모두, 나를 위해 일한

+0

http://webpy.org/cookbook/staticfiles에서 이러한 방법에 몇 가지 이점이 있습니까? – dimo414

+0

나는이 일을 할 수있었습니다 - 나는 일할 다른 방법을 얻을 수 없었습니다. 그래서 장점이라고 생각합니다 ;-) 나는 공유 투쟁 계정에서 일하고 있었고, 그래서 저의 투쟁의 일부 였을 것입니다. –

+1

@tom - 감사합니다! 이 게시물에 몇 시간을 구해 줬어. – incognick

1

나는 웹 정적 파일을 제공하지 않는 것이 좋습니다 .py. 당신은 아파치 또는 nginx 그걸 위해 구성해야합니다.

+0

왜 안 되니? 당신의 이유를 이해하는 것이 유익 할 것입니다. – Octopus

+0

속도가 느리기 때문에 –

관련 문제