在Django settings.py 文件中,我们有
STATIC_URL = '/static/'
在每个app目录中我都有css,js文件的静态文件夹。
例如:
├── myapp
│ ├── migrations
│ ├── __pycache__
│ ├── static
│ └── templates
我在* .html文件中使用{% static "......." %}
例如
<link rel="stylesheet" href="{% static "style/fesahat.css" %}" />
<link rel="stylesheet" href="{% static "style/loginStyle.css" %}" />
在输出渲染中,django创建这样的url:
mysite.com/static/style/fesahat.css
mysite.com/static/style/loginStyle.css
我想创建这样的网址:
mysite.com/myapp/templates/static/style/fesahat.css
mysite.com/myapp/templates/static/style/loginStyle.css
答案 0 :(得分:2)
不,不。静态文件不是模板;不要把它们放在那里。
答案 1 :(得分:0)
@Daniel Roseman是正确的。始终使用含义全名。
STATIC_URL = '/static/' #This is URL prefix so use any prefix
始终在每个应用程序级静态目录中使用名称间隔。
app1
app1/static/app1/files
app2
app2/static/app2/files
静态文件的命名空间
现在,我们也许可以将静态文件直接放在my_app / static /中(而不是创建另一个my_app子目录),但是实际上这是一个坏主意。 Django将使用找到的第一个名称与之匹配的静态文件,如果在其他应用程序中具有相同名称的静态文件,则Django将无法区分它们。我们需要能够将Django指向正确的位置,而确保这一点的最佳方法是对它们进行命名。也就是说,将这些静态文件放置在为应用程序本身命名的另一个目录中。
您可以通过指定前缀在STATICFILES_DIRS中对静态资产进行命名空间。