如何将预先设计好的网页带到django并添加我自己的静态文件

时间:2014-12-24 15:14:23

标签: python html django

我设计了一个页面,包括一个' index.html'还有一些css和' js'单独文件夹中的文件。然后我决定将我的网页带到django,以便我可以在我的网页中为某些内容添加数据库和一些管理系统。但我无法解决这个问题。这是我到目前为止尝试过的方式。

url.py

urlpatterns = patterns('',
    # Examples:
    url(r'^$', 'mysite.views.home', name='home'),
)

views.py

def home(request):
    return render_to_response('index.html')

setting.py

TEMPLATE_DIRS = ('/var/www/html/mysite/templates',)

我已将index.html个文件及其亲属文件夹放入templates文件夹。但是当我运行服务器时,它显示我的主页而没有识别我的css和' js'文件。

我想知道正确的方法是什么。 谢谢你的帮助。

- 更新1 -

所以参考this document我已经设置了像这样的静态文件

我已经创造了静态'我的项目ND中的文件夹在' setting.py'

中添加了一行
PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))
STATIC_ROOT = os.path.join(PROJECT_PATH, 'static')
STATIC_URL = '/static/'

然后我转移了所有的&#c;'和' js'文件到该文件夹​​。

我将这两行添加到我的主页以检查它是否有效

{% load staticfiles %}
<img src="{% static "/img/b-img-4.jpg" %}" alt="My image"/>

我也试过这个命令

python manage.py collectstatic

这是新&#39;&#39;的错误行。我添加了标签。

[24/Dec/2014 19:27:29] "GET /img/b-img-4.jpg HTTP/1.1" 404 2163

- 更新2 -

我发现了我的错误。我改变了我的<img>标签

<img src="{% static "admin/img/b-img-4.jpg" %}" alt="My image"/>

但问题是它只是识别其默认的静态文件和文件夹。我添加了自己的文件和文件夹并运行python manage.py collectstatic但它没有显示我添加的新文件。

这是我的文件夹srtructure

mysite--
    |
    mysite
    |     |
    |     static
    |      |
    |      my css js files
    |
    templates
        |
        index.html

我做错了什么?

3 个答案:

答案 0 :(得分:2)

你快到了,但你不应该把其他资源(JS,CSS,图像)放到模板文件夹中。这只适用于模板!您需要阅读静态文件docs:

https://docs.djangoproject.com/en/1.7/howto/static-files/

这是确保代码(包括模板 - 它们是一种服务器端代码)和资源的正确分离所必需的。

(如果你来自PHP背景,你可能会对此感到沮丧,因为它似乎比PHP更复杂,你可以将它们混合在一起。但是,PHP混合这些东西的方式是一个非常糟糕的主意,导致到multiple security vulnerabilities)。

答案 1 :(得分:1)

所以This blog让所有的一切都变得清晰,并且通过这些设置,我可以让它发挥作用

<强> setting.py

STATIC_URL = '/static/'
PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))
STATIC_ROOT = os.path.join(PROJECT_PATH, 'static')
STATICFILES_DIRS = (
    os.path.join(PROJECT_PATH, 'static_assets'),
) 

<强>的index.html

{% load static from staticfiles %}
<img src="{% static 'img/author.jpg' %}" alt="My image"/>

文件夹结构

mysite--
    |
    mysite
    |     |
    |     static
    |      |
    |      my css js files
    |
    static_assets
    |      
    templates
        |
        index.html

答案 2 :(得分:0)

您的static文件夹不在其应有的位置。试试这个:

mysite
    static
        js
        css
        images
            b-img-4.jpg  

如果您的图片放置在上面的树中,这应该有效:

<img src="{% static "images/b-img-4.jpg" %}" alt="My image"/>