Найти - Пользователи
Полная версия: jinja и javascript
Начало » Web » jinja и javascript
1
alexandre
Вот столкнулся с проблемой проблемой:
<!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>
Собственно я понимаю что ему кажется что путь неправильный но как ему указать что надо подключить лежащий рядом файл непонятно
slav0nic
Раздел документации “Static Files”
o7412369815963
используй абсолютные пути: /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>
alexandre
Сложил файлы в папку статик и написал:
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>
o7412369815963
вместо send_file напиши static_file, фаербаг как бы подсказывает
alexandre
При:
@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
alexandre
Вот сами файлы:
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
o7412369815963
у меня с 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)
alexandre
Все спасибо большое заработало, ошибка была у меня с правами.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB