Używam ramek typu webpy. Chcę wysłać plik statyczny na jedno z żądań. Czy w strukturze webpy jest specjalna metoda, czy muszę po prostu przeczytać i zwrócić ten plik?Jak wyświetlać plik w webpie?
Odpowiedz
Jeśli używasz serwera dev (bez apache):
Utwórz katalog (znany również jako folder) o nazwie statyczne w miejscu skryptu, który uruchamia serwer web.py. Następnie umieść pliki statyczne, które chcesz wyświetlić w folderze statycznym. Na przykład adres URL wyśle obraz ./static/logo.png do klienta.
referencyjny: http://webpy.org/cookbook/staticfiles
Aktualizacja. Jeśli naprawdę potrzebujesz, aby służyć plik statyczny na /
można po prostu użyć przekierowania:
#!/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()
Walczyłem z tym przez ostatnie kilka godzin ... Fuj!
Znaleziono dwa rozwiązania, które są zarówno pracujący dla mnie ... 1 - w .htaccess dodać tę linię przed linią ModRewrite:
RewriteCond %{REQUEST_URI} !^/static/.*
To będzie upewnić się, że wnioski do/katalogu są statyczne/NIE przepisane, aby przejść do skryptu code.py.
2 - w code.py dodać statyczny obsługi oraz wejście URL dla każdej z kilku katalogach:
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
Uwaga - Ukradłem to z grupy web.py google ale nie mogę znaleźć dang post więcej!
Każda z nich pracował dla mnie, zarówno w szablonach dla web.py i dla bezpośredniego połączenia na stronie internetowej że ja kładę na „static”
Czy zauważyłeś pewne korzyści z tych metod na http://webpy.org/cookbook/staticfiles? – dimo414
Zabrałem to do roboty - nie mogłem uzyskać innych metod pracy, więc myślę, że to jest zaleta ;-) Pracowałem nad współdzielonym kontem hostingowym, więc być może niektóre z moich zmagań. –
@tom - dzięki! zaoszczędziłeś mi kilka godzin na tym poście. – incognick
Nie polecam służąc statycznych plików z sieci .py. Lepiej mieć skonfigurowany apache lub nginx.
dlaczego nie? byłoby dobrze zrozumieć twoje powody. – Octopus
Ponieważ będzie wolny –
- 1. Jak wyświetlać plik z JSP? .
- 2. Jak czytać i wyświetlać plik w rozszerzeniu chrome
- 3. Jak wyświetlać/wyświetlać błędy krytyczne w przeglądarce na HHVM
- 4. Nginx próbuje pobrać plik zamiast wyświetlać
- 5. Jak mogę pobrać mój plik web.config, aby wyświetlać błędy zdalnie?
- 6. Jak wyświetlać napisy w MPMoviePlayerController
- 7. Jak wyświetlać obrazy w Angular2?
- 8. Jak wyświetlać napisy w Androidzie ExoPlayer
- 9. Jak nie wyświetlać klasy. Gass
- 10. Jak wyświetlać dane pole?
- 11. Jak wyświetlać odpowiednią ikonę w oknie dialogowym?
- 12. Jak wyświetlać obrazy w raporcie RDLC
- 13. Jak wyświetlać podzielone formularze w podformularzu nawigacji?
- 14. Jak wyświetlać liczby szesnastkowe w C?
- 15. Jak wyświetlać numery linii domyślnie w SciTE?
- 16. Jak wyświetlać ikony bez tekstu w QListWidget?
- 17. Jak wyświetlać długość listy w StringTemplate
- 18. Jak wyświetlać różne przebiegi w TensorBoard?
- 19. Jak wyświetlać wykres kołowy w Androidzie
- 20. Jak wyświetlać numery wierszy w Androidzie Studio
- 21. Jak wyświetlać pliki .htaccess w Eclipse PDT?
- 22. Jak poprawnie wyświetlać czcionkę telugu w emulatorze?
- 23. Jak wyświetlać obrazy w plikach znaczników Github?
- 24. Jak wyświetlać współrzędne pikseli w ulotce?
- 25. Jak wyświetlać szablon bootstrapu w żaglach 0,9?
- 26. Jak wyświetlać prowadnice wcięć w Emacs?
- 27. Jak wyświetlać błędy php w czytelniejszym formacie?
- 28. Jak wyświetlać wyskakujące okienko alertu w kakao?
- 29. Jak wyświetlać znaki specjalne w systemie Android?
- 30. jak zawsze wyświetlać nagłówki w RowsFragment
to jest plik tylko/statycznej ścieżki, potrzebuję służyć index.html na żądanie ścieżką/ – codez
@codez: Zaktualizowałem moją odpowiedź. – miku
działa to tylko wtedy, gdy uruchamiasz aplikację web.py bezpośrednio z folderu, w którym się znajduje. jeśli chcesz uruchomić /path/to/my/web/app.py, masz pecha. – Octopus