Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 26, 2010 02:37:11

alexandre
От:
Зарегистрирован: 2010-11-16
Сообщения: 104
Репутация: +  0  -
Профиль   Отправить e-mail  

jinja и javascript

Вот столкнулся с проблемой проблемой:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="jquery.min.js" ></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<title>Test</title>
</head>
собственно файл шаблона, локальное jquery не подключаться code.jquery.com/jquery подключается наверно какие то есть нюансы с работой bottle и jinja.
Вывод firebug заместо того что должно подключиться
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
3 <html>
4 <head>
5 <title>Error 404: Not Found</title>
6 <style type="text/css">
7 html {background-color: #eee; font-family: sans;}
8 body {background-color: #fff; border: 1px solid #ddd; padding: 15px; margin: 15px;}
9 pre {background-color: #eee; border: 1px solid #ddd; padding: 5px;}
10 </style>
11 </head>
12 <body>
13 <h1>Error 404: Not Found</h1>
14 <p>Sorry, the requested URL <tt>http://py.couch/jquery.min.js</tt> caused an error:</p>
15 <pre>Not found: jquery.min.js</pre>
16 </body>
17 </html>
Собственно я понимаю что ему кажется что путь неправильный но как ему указать что надо подключить лежащий рядом файл непонятно



Офлайн

#2 Ноя. 26, 2010 09:27:58

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

jinja и javascript

Раздел документации “Static Files”

Офлайн

#3 Ноя. 26, 2010 16:03:59

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

jinja и javascript

используй абсолютные пути: /jquery.min.js

будет примерно так:

from bottle import static_file, get

@get('/static/:fname')
def st_file(fname):
send_file(fname, root='./static')
при этом файлы должны лежать в папке ./static/ , а в html пишешь: <script type=“text/javascript” src=“/static/jquery.min.js” ></script>

Отредактировано (Ноя. 26, 2010 16:04:34)

Офлайн

#4 Ноя. 26, 2010 17:44:20

alexandre
От:
Зарегистрирован: 2010-11-16
Сообщения: 104
Репутация: +  0  -
Профиль   Отправить e-mail  

jinja и javascript

Сложил файлы в папку статик и написал:

from bottle import static_file, get

@route('/static/:fname')
def st_file(fname):
send_file(fname, root='./static')
Он фаербаг начал другую ошибку выдавать:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
3 <html>
4 <head>
5 <title>Error 500: Internal Server Error</title>
6 <style type="text/css">
7 html {background-color: #eee; font-family: sans;}
8 body {background-color: #fff; border: 1px solid #ddd; padding: 15px; margin: 15px;}
9 pre {background-color: #eee; border: 1px solid #ddd; padding: 5px;}
10 </style>
11 </head>
12 <body>
13 <h1>Error 500: Internal Server Error</h1>
14 <p>Sorry, the requested URL <tt>http://py.couch/static/jquery.js</tt> caused an error:</p>
15 <pre>Unhandled exception</pre>
16 <h2>Exception:</h2>
17 <pre>NameError("global name 'send_file' is not defined",)</pre>
18 <h2>Traceback:</h2>
19 <pre>Traceback (most recent call last):
20 File "/usr/local/lib/python2.6/dist-packages/bottle-0.8.5-py2.6.egg/bottle.py", line 499, in handle
21 return handler(**args)
22 File "/home/user/workspace/python/test/main.py", line 26, in st_file
23 send_file(fname, root='./static')
24NameError: global name 'send_file' is not defined
25</pre>
26 </body>
27 </html>



Отредактировано (Ноя. 26, 2010 17:45:13)

Офлайн

#5 Ноя. 26, 2010 18:07:12

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

jinja и javascript

вместо send_file напиши static_file, фаербаг как бы подсказывает

Офлайн

#6 Ноя. 26, 2010 18:20:05

alexandre
От:
Зарегистрирован: 2010-11-16
Сообщения: 104
Репутация: +  0  -
Профиль   Отправить e-mail  

jinja и javascript

При:

@route('/static/:fname')
def st_file(fname):
static_file(fname, root='./static')
Выдает:
<body>
<h1>Error 404: Not Found</h1>
<p>Sorry, the requested URL <tt>http://py.couch/static/jquery.js</tt> caused an error:</p>
<pre>File does not exist.</pre>
</body>
При:
@route('/static/:fname')
def st_file(fname):
return static_file(fname, root='./static')
Выдает:
Невозможно загрузить исходный код для: http://py.couch/static/jquery.js



Офлайн

#7 Ноя. 26, 2010 18:37:53

alexandre
От:
Зарегистрирован: 2010-11-16
Сообщения: 104
Репутация: +  0  -
Профиль   Отправить e-mail  

jinja и javascript

Вот сами файлы:

test.tpl
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="/static/jquery.js" type="text/javascript"></script>
<title>Test</title>
</head>
<body>
<div>{{data}}</div>
</body>
</html>

main.py

# coding: utf-8
from bottle import run, route, response, request, debug, static_file, get
from bottle import jinja2_template as templ

@route('/static/:fname')
def st_file(fname):
static_file(fname, root='./static')

@route('/')
def main_tpl():
data = "hello"
return templ('test', data = data)

debug(True)
Ну и путь вроде правильный папка static и в ней jquery.js



Офлайн

#8 Ноя. 26, 2010 22:20:50

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

jinja и javascript

у меня с return код нормально работает:

@route('/static/:fname')
def st_file(fname):
return static_file(fname, root='./static')
запускал через сервер для разработки:
from bottle import run
run(host='localhost', port=8080, reloader=True)

Офлайн

#9 Ноя. 27, 2010 01:40:33

alexandre
От:
Зарегистрирован: 2010-11-16
Сообщения: 104
Репутация: +  0  -
Профиль   Отправить e-mail  

jinja и javascript

Все спасибо большое заработало, ошибка была у меня с правами.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version