[英]Why isn't CSS working with apache2+mod_wsgi+python3+bottle?
背景:我正在嘗試使用ubuntu服務器站起Amazon EC2實例。 我已經為Python3安裝了Python3.3.2,mod_wsgi-3.5,apache2和bottle和jinja2。 我可以使用所有這些組件來加載常規網頁,例如,它可以識別jinja2模板,並正確將python代碼中傳遞的變量內插到html文件中。 此外,如果我將views/home.tmpl
的html更改為<body bgcolor="#b0c4de">
那么我將獲得適當的顏色。
問題:我想實現一個很好的抽象水平(並學習一般的CSS),所以我希望我的頁面具有一個外部CSS來管理HTML頁面屬性,等等。但是我無法正常工作,所以我似乎無法弄清楚原因。
最小(非)工作代碼示例:
我的目錄結構是:
ubuntu@ip-172-31-47-7:/var/www/helloworld$ ls -lrtR
.:
-rw-rw-r-- 1 ubuntu ubuntu 162 Feb 4 23:55 adapter.wsgi
-rwxrwxr-x 1 www-data www-data 1044 Feb 5 04:10 helloworld.py
drwxrwxr-x 3 www-data www-data 4096 Feb 5 04:14 views
./views:
drwxrwxr-x 2 ubuntu ubuntu 4096 Feb 5 04:04 css
-rw-rw-r-- 1 www-data www-data 431 Feb 5 04:14 home.tmpl
./views/css:
-rw-rw-r-- 1 ubuntu ubuntu 34 Feb 5 04:04 homestyle.css
adapter.wsgi
只是啟動bottle.default_app()的包裝器:
import sys, os, bottle
sys.path = ["/var/www/helloworld/"] + sys.path
os.chdir(os.path.dirname(__file__))
import helloworld
application = bottle.default_app()
helloworld.py
也非常簡單:
from bottle import default_app, debug, get, post, request, route, run
from bottle import jinja2_template as template
from bottle import jinja2_view as view
@route("/hello")
def hello(name=None):
return template('home.tmpl', name=name)
views/home.tmpl
有一些jinja2特定的代碼,但是很短。 注意<link ...>
行; 我覺得這是我遇到麻煩的地方:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<link rel="stylesheet" type="text/css" href="views/css/homestyle.css">
{% block head %}
<title>{% block title %} {% endblock %}Jinja2-Templated Webpage!</title>
{% endblock %}
</head>
<body>
{% if name is string: %}
Hello {{ name.title() }}
{% else: %}
Hello world...
{% endif %}
</body>
而且我的views/css/homestyle.css
很簡單:
body {background-color: #b0c4de;}
我曾嘗試將homestyle.css的放置位置移至views
目錄中或“頂層”目錄中(此處為/var/www/helloworld
); 我還嘗試在href=
使用其他鏈接,包括絕對路徑。 都無濟於事,我無法獲得此CSS來為網頁着色。 任何幫助是極大的贊賞!
如果可能的話,讓Apache提供您的CSS文件; 不要把它下views
。 請記住,樣式表的href是相對於網頁URI的,而不是相對於Bottle運行的目錄的。
因此,如果您訪問http://myhost/hello
的頁面,請使用以下命令:
<link rel="stylesheet" type="text/css" href="css/homestyle.css">
並將homestyle.css
放在/var/www/helloworld/css/
。
希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.