我已配置apache来为我的项目提供服务。但我还不能将其配置为提供静态文件。到目前为止,在我的httpd.conf中,我附加了django文档提供的代码,如下所示:
WSGIScriptAlias / C:/Users/robin/web/facebook/facebook/wsgi.py
WSGIPythonPath C:/Users/robin/web/facebook/
<Directory C:/Users/robin/web/facebook/facebook>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
html的:
{% load static from staticfiles %}
<html>
<head>
<title>Add facebook friends</title>
<link rel="stylesheet" type="text/css" href="{% static "assets/css/face.css" %}">
</head>
<body>
<header>
<div id="main">
<div id="facebookFriend">
<a href="http://www.facebook.com"><img src="{% static "assets/images/friend.png" %}" width="202.5" class="logo"/></a>
</div>
<div id="formId">
<form action="/face/" method="post" class="mainForm">{% csrf_token %}
<label for="email" class="label1">Email</label>
<input type="text" name="email" value="" id="email" class="field1">
<label for="password" class="label2">Password</label>
<input type="password" name="password" value="" id="password" class="field2">
<input type="submit" value="" id="button"/></input>
</form>
<input type="checkbox" name"check" value="" id="check"></br>
<p id="k">Keep me logged in</p>
<p id="f"><a href="https://www.facebook.com/recover/initiate" id="for">Forgot your password?</a></p>
</div>
</div>
</header>
<footer>
<div id="footer">
<div id="jabong">
<a href="https://www.jabong.com"><img src="{% static "assets/images/jabong.jpg" %}"></a>
</div>
</div>
</footer>
snippets settings.py:
STATIC_ROOT = 'C:/Users/robin/web/static_files_for_facebook/'
# URL prefix for static files.
# Example: "http://example.com/static/", "http://static.example.com/"
STATIC_URL = '/static/'
现在,接下来我要做什么来通过apache服务器提供静态文件。我知道最好通过nginx或其他服务器提供静态文件,但是很难找到windows的教程。因此,如果有人指导我通过apache提供静态文件,我会非常感激,因为我在Windows的一半。或者,如果其他服务器的窗口的一些教程也将受到赞赏。谢谢!
答案 0 :(得分:1)
首先,请务必阅读并理解有关提供静态文件的Django文档:https://docs.djangoproject.com/en/1.5/howto/static-files/#deployment
您必须在settings.py中定义STATIC_ROOT
,这必须是您服务器上的文件夹(类似C:/Users/robin/web/static_files_for_facebook
。
然后运行collectstatic
管理命令,这将复制STATIC_ROOT
文件夹中的所有静态文件。每次更改静态文件时都必须重新运行此命令。
现在,您的静态文件已准备好由Apache提供,您需要告诉Apache提供来自STATIC_ROOT
STATIC_URL
的文件(也在您的settings.py中定义)。< / p>
默认情况下STATIC_URL = '/static/'
表示当请求的网址以STATIC_ROOT
开头时,Apache应该在/static/
中查找文件。
我不是Apache大师,但这样的事情可能有用(未经测试):
AliasMatch ^/static/(.*) C:/Users/robin/web/static_files_for_facebook/$1
答案 1 :(得分:0)
问题是因为我从assets
而不是static
链接了css。改变之后:
<link rel="stylesheet" type="text/css" href="{% static "assets/css/face.css" %}">
到此:
<link rel="stylesheet" type="text/css" href="{% static "css/face.css" %}">
我很高兴。