在设计登录界面时,采用了网上下载的登录模板,漂亮,简易。但是在测试和部署时,发现原来模板中采用的js文件和css文件,却着实让我折腾了好几天。

  在以往的网页设计中,一般只要把测试站点开启后,网页中的静态文件就不会出现连接的问题,但是在Django中,包括开发环境,也包括部署环境,竟然在设置中都有所不一样,现在将自己的经历写下来,也便于以后查看。

  1.开发环境的设置

  (1)开发环境可以用IDLE(默认)或Pycharm,这个没有影响。首先在自己的APP中创建一个存放静态文件的文件夹,名称为“static”。如笔者的项目名称为:website,里面自动生成一个website,在该文件夹中创建static文件夹。如下图所示:

  (2)设置settings.py文件

STATIC_URL = '/static/'
STATIC_ROOT= os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = (os.path.join(
BASE_DIR,'website/static'), #这里的地址注意要加上APP名称,如website
)

  

  (3)在html文件里可以直接使用该路径即可,如:

<link rel="stylesheet" href="/static/css/style.css">       

  这样设置后,在开发环境就可以使用静态文件了。

  2.部署环境设置(基于Ubuntu16.04)

  当在开发环境完成的Django项目文件复制到基于Ubuntu环境的Django站点目录后,测试时发现静态文件不能正常显示。网上找了许多的方法,可能没有完全理解吧,折腾了好几天,到现在为止才算是真正完成。 

  (1)项目下添加static文件夹

  笔者测试后发现,在开发环境调整的settings.py设置在部署环境也是可以的,也就是说settings.py文件不需要更改,直接复制到相应的地方即可。

  在部署环境的项目文件夹创建static文件夹。如下图所示:

  注意:这个地方与开发环境有所不同。在部署环境中,需要通过下面第二步,将原本开发环境中的静态文件全部复制到该文件夹中。

  (2)复制文件到上面的文件夹命令:

python3 manage.py collectstatic

  通过该命令,Django会把静态文件包括相应的文件夹,全部复制到项目根目录的static文件夹中。

  完成该步骤后,进行测试,发现静态文件还是不能访问。经过多次查证后发现在Apache服务器中,无法找到static文件夹,然后继续百度,一番查询后,最后得到的结果是:需要在apache中设置虚拟路径。

  所以通过命令首先进入: /etc/apache2/sites-available,然后修改  website.conf。在中间增加一条语句:

Alias /static/ /var/www/website/static/

  添加后需要让该配置生效,所以做如下操作:

service apache2 reload

  至此,部署环境中的静态文件正常工作了。

Django学习之天气调查实例(3):部署静态文件CSS、JS、images等(部署环境基于Ubuntu)的更多相关文章

  1. Django学习之天气调查实例(1):工程的开始

    开始学习Django,一步一个脚印的进行.思考再三,还是以一个实例来开始学习.手里面正好有几万条单位天气传感器收集的数据,想做一个网页版的天气统计查询之类的小应用,也可以给学生体验,方便教学的进行(尽 ...

  2. Django学习之天气调查实例(2):显示数据表数据

    数据表数据添加后,如添加3条用户信息,分别为“aaa”.“bbb”.“ccc”,现在通过代码的方式显示数据表中的数据. 1.在website项目文件夹中创建 userload.py文件,并且写如下代码 ...

  3. django系列4.2--自定义标签, 自定义过滤器, inclusion_tag, 引入静态文件(css,js等)

    项目的目录为 在app中创建templates时,最好要再创建一个app名相同的文件夹,因为项目找文件时从第一个app开始遍历,不同app内的同名文件会有冲突,所以这样处理 一.自定义标签和过滤器 1 ...

  4. django基础知识之管理静态文件css,js,images:

    管理静态文件 项目中的CSS.图片.js都是静态文件 配置静态文件 在settings 文件中定义静态内容 STATIC_URL = '/static/' STATICFILES_DIRS = [ o ...

  5. 我的django之旅(二)模板和静态文件

    我的django之旅(二)模板和静态文件 标签(空格分隔): django 1.为什么要使用模板 在上一篇博文中,提到了HttpReponse,但是HttpReponse只能传送字符串,如果要构建一个 ...

  6. 百度分享不支持https的解决方案(单独部署静态文件)

    首先是参考了博客,下载百度分享的静态代码 static 链接为:https://www.cnblogs.com/mmzuo-798/p/6434576.html 后来在nginx的 nginx.con ...

  7. 擦他丫的,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了!

    擦 ,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了! 问题在于我使用的谷歌浏览器,默认使用了缓存,导致每次访问同一个url时,都返回的是缓存里面的东西.通过谷歌 ...

  8. IDEA中Springboot静态文件加载(热部署)

    Springboot项目静态文件加载 昨天写项目的时候碰到一个问题,就是静态文件css无法读取到项目中,我仔细思考了下,总结了下,可能有两个问题 1.页面未加载更新 这个可能性非常大,Chrome就是 ...

  9. Django 学习笔记(三) --- HTML 模版加载 css、js、img 静态文件

    人生苦短 ~ Tips:仅适用于 Python 3+(反正差别不大,py2 改改也能用).因为据 Python 之父 Guido van Rossum 说会在 2020 年停止对 Python 2 的 ...

随机推荐

  1. JS支持可变参数(任意多个)

    <script type="text/javascript"> function abc(){ //js中有个变量arguments,可以访问所有传入的值 for(va ...

  2. Windos下Android(ADT Bundle)配置NDK的两种方法------ADT、Cygwin、NDK配置汇总(转)

    转自:http://blog.csdn.net/yanzi1225627/article/details/16897877 Android开发环境由windows下ADT Bundle搭建,且按前文h ...

  3. POJ 3088 斯特林

    题意:有一个n个按钮的锁,按下一些按钮打开门,有多少开门方式,其中,一些按钮可以选,可以不选,选中的按钮 可以分成一些集合,集合之间无序,是同时按下的. 分析: 1.首先选择 i 个按钮,组合数 2. ...

  4. php 的 number_format使用

    $num = 1.0258963147; // 1.0259 $num = number_format($num, 4, '.', ''); $num = number_format($num); $ ...

  5. IntelliJ IDEA 快速搭建 Spring MVC环境

    IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.Ant.JUnit.CVS整合.代码审查. 创新的GUI设计等方面的功能可以说是超常的. ...

  6. IntelliJ Idea 常用快捷键列表和快速输入

    IntelliJ Idea 常用快捷键列表和快速输入 快速输入查看 最常用快捷键 Alt+Enter 万能快捷键,用于引入错误包 Ctrl+ Mouse left 快速调转定义 快捷键 Ctrl+Sh ...

  7. 【luogu P3371 单源最短路径】 模板 dij + heap

    题目链接:https://www.luogu.org/problemnew/show/P3371#sub 堆优化迪杰斯特拉,留着以后复习用 #include <iostream> #inc ...

  8. py faster rcnn的lib编译出错问题

    真是好事多磨啊,计算机系统依然是14.04,而cuda依然是8.0,唯一不同的是时间不一样,下载的各种库版本有差别,GPU的driver不一样. 但是这样就出问题了,py-faster rcnn的li ...

  9. JavaScript js调用堆栈(三)

    本文主要深入介绍JavaScript内存机制 内存模型 JS内存空间分为栈(stack),堆(heap),池(一般也会归类为栈中),其中栈存放变量,堆存放复杂对象,池存放常量. 注:闭包中的变量并不保 ...

  10. SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程

    转载请标明出处: https://www.fangzhipeng.com/springboot/2017/07/11/springboot1 本文出自方志朋的博客 简介 spring boot 它的设 ...