0

我已经配置了 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>

片段设置.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 中的一半。或者,如果其他 Windows 服务器的一些教程也将不胜感激。谢谢!

4

2 回答 2

2

首先,请务必阅读并理解有关提供静态文件的 Django 文档:https ://docs.djangoproject.com/en/1.5/howto/static-files/#deployment

您必须STATIC_ROOT在 settings.py 中定义,这必须是您服务器上的一个文件夹(类似于C:/Users/robin/web/static_files_for_facebook.

然后运行collectstatic管理命令,这将复制文件STATIC_ROOT夹中的所有静态文件。每次更改静态文件时都必须重新运行此命令。

现在,您的静态文件已准备好由 Apache 提供服务,您需要告诉 Apache 提供来自STATIC_ROOTat 的文件STATIC_URL(也在您的 settings.py 中定义)。

默认情况下STATIC_URL = '/static/',这意味着 Apache 应该STATIC_ROOT在请求的 URL 以/static/.

我不是 Apache 大师,但这样的事情可能有效(未经测试):

 AliasMatch ^/static/(.*) C:/Users/robin/web/static_files_for_facebook/$1 
于 2013-08-22T16:37:42.960 回答
0

问题是因为我从 链接了 CSS assets,而不是static. 更改后:

<link rel="stylesheet" type="text/css" href="{% static "assets/css/face.css" %}">

对此:

<link rel="stylesheet" type="text/css" href="{% static "css/face.css" %}">

我很高兴去。

于 2013-08-23T15:32:06.367 回答