假设我有一个HTML页面(基本.html)必须包含一个JavaScript文件。你知道吗
<script type="text/javascript" src="/js/main.js"></script>
据我所知,Django项目不是托管在公共文件夹中的。相反,请求被路由到生成响应的views.py
。你知道吗
假设我的项目目录如下所示
- project
- project_app
- views, models, ecc…
- templates
- base.html
- css
- main.css
- js
- main.js
为什么base.html
可以引用main.css
和main.js
?如果我访问myserver.com/js/main.js
,则不应返回任何内容(因为模板文件夹不是公共的)。但是浏览器需要访问这些文件,我需要包含它们。你知道吗
我是否需要编写一个特定的URL规则来将请求重定向到/js/main.js
到实际的js文件,或者什么样的魔法可以让一个简单的html包含工作?你知道吗
通常的方法是将CSS、javascript和类似文件保存在
static
文件夹中,并将它们提供给html。一般Django文档可以在here找到。你知道吗简而言之,您的目录如下所示:
然后,您的
base.html
将使用以下方法引用该文件:我在顶部引用的文档展示了如何在生产环境中提供静态文件。许多人使用内容交付网络(CDN)来服务他们的静态文件。亚马逊的S3服务就是一个例子。然后,将
settings.py
中的STATIC_URL
设置更改为S3 bucket(或类似的网络)。然后可以引用模板中的STATIC_URL
。你知道吗您将使用
./manage.py collectstatic
之类的命令来收集静态文件,并在特定时间将它们移动到CDN中。collectstatic
的基础知识可以在here找到。你知道吗您需要使用命令django将所有静态文件放在static\u根文件夹中-管理员.py收集并提供此文件夹。更多详情和解释请参见:
https://docs.djangoproject.com/en/dev/howto/static-files/#managing-static-files-css-images
相关问题 更多 >
编程相关推荐