本文将为您提供关于Golang开发web应用时的静态文件处理方法(v0.01)的详细介绍,我们还将为您解释golang静态文件服务器的相关知识,同时,我们还将为您提供关于AngularJS开发Web应
本文将为您提供关于Golang 开发web应用时的静态文件处理方法(v0.01)的详细介绍,我们还将为您解释golang 静态文件服务器的相关知识,同时,我们还将为您提供关于Angular JS 开发Web应用程序、angularjs怎么开发web应用?angularjs开发web应用实例、Django | 静态文件处理、django 生产环境中静态文件处理办法的实用信息。
本文目录一览:- Golang 开发web应用时的静态文件处理方法(v0.01)(golang 静态文件服务器)
- Angular JS 开发Web应用程序
- angularjs怎么开发web应用?angularjs开发web应用实例
- Django | 静态文件处理
- django 生产环境中静态文件处理办法
Golang 开发web应用时的静态文件处理方法(v0.01)(golang 静态文件服务器)
一、首先,我的应用目录结构如下图:
分析一下:应用运行文件所在文件夹在hw,此即为应用根目录。模板则位于hw/template中,其中css文件在其中的css文件夹,javascript文件在js文件夹。
应用在hw文件夹中被执行,运行过程中需要读取template/css/main.css文件及template/js中的javascript文件。
二、需要用到如下的包:"net/http"
涉及到的函数:http.Fileserver,http.StripPrefix,http.Handle。
1、http.FileServer
func FileServer(root FileSystem) Handler
FileServer returns a handler that serves HTTP requests with the contents of the file system rooted at root.
To use the operating system's file system implementation,use http.Dir:
http.Handle("/",http.FileServer(http.Dir("/tmp")))
2、http.StripPrefix
func StripPrefix(prefix string,h Handler) Handler
StripPrefix returns a handler that serves HTTP requests by removing the given prefix from the request URL's Path and invoking the handler h.
StripPrefix handles a request for a path that doesn't begin with prefix by replying with an HTTP 404 not found error.
3、http.Handle
func Handle(pattern string,handler Handler)
Handle registers the handler for the given pattern in the DefaultServeMux. The
documentation for ServeMux explains how patterns are matched.
func HandleFunc
func HandleFunc(pattern string,handler func(ResponseWriter,
*Request))
HandleFunc registers the handler function for the given pattern in the
DefaultServeMux. The documentation for ServeMux explains how patterns are
matched.
func ListenAndServe
func ListenAndServe(addr string,handler Handler) error
ListenAndServe listens on the TCP network address addr and then calls Serve with
handler to handle requests on incoming connections. Handler is typically nil,in which
case the DefaultServeMux is used.
三、实例代码
1、hw.go
package main import ( "io" "log" "net/http" ) func Hello(w http.ResponseWriter,r *http.Request) { hp := `<html> <head> <title>okkkkkk</title> <link rel="stylesheet" href="template/css/main.css" type="text/css" /> </head> <body> <h2>this is a test for golang.</h2> </body> </html>` io.WriteString(w,hp) } func StaticServer(w http.ResponseWriter,r *http.Request) { w.Header().Set("content-type","text/html") staticHandler := http.FileServer(http.Dir("./template/")) staticHandler.ServeHTTP(w,r) return } func main() { http.Handle("/template/",http.StripPrefix("/template/",http.FileServer(http.Dir("./template")))) http.HandleFunc("/",Hello) err := http.ListenAndServe(":8000",nil) if err != nil { log.Fatal("ListenAndServe: ",err.Error()) } }
2、main.css
body { background-color: black; color: red; }
关键在:http.Handle("/template/",http.FileServer(http.Dir("./template")))) 这一行代码中实现了静态文件的共享。
主要情况为:
a、网站根目录:http:/127.0.0.1:8000/
b、需要读取的css文件为:http://127.0.0.1:8000/template/css/main.css,注意其中的 /template与http.Handle("/template/"...中的template对应。
Angular JS 开发Web应用程序
1.SPA 应用程序:单页Web应用(single page web application,SPA),就是只有一张Web页面的应用。
如:网页云音乐(http://music.163.com/)
2.Angular JS的一些属性特征:
1)MVC
2)模块化
3)自动化双向数据绑定
4)指令系统(非侵入式API) (没明白是什么鬼????)
3.如果想要使用NPM的方式安装Angular.js,必须先安装node.js.
步骤:去node.js官网https://nodejs.org/en/下载——》安装(安装完后电脑上就有一个npm的命令)——》在项目的根目录下,shift+右键——》open command window here(也可以通过Windows+R打开command 命令后切换到项目根目录的路径)——》输入:npm install angular——》enter——》在最下面看到路径的时候说明就已经安装结束了。
4. NPM:node package manager,是node的一个包管理工具
angularjs怎么开发web应用?angularjs开发web应用实例
本篇文章主要的介绍了关于angularjs是如何开发一个简单的web应用的。想要知道的就赶紧来看看吧,里面详细的介绍了angularjs是如何开发web应用的。接下来我们一起来看文章吧
我们先熟悉下angularjs的实力:
目前不同类型的Web开发人员都在广泛使用AngularJS,这套卓越的框架也充分证明了自身满足各类不同需求的能力。作为一名Web开发人员,无论大家是刚刚入门的新手还是已经拥有丰富的实践经验,选择一款优秀的框架都是必要的工作前提,而AngularJS正是这样一套理想的解决方案。在使用AnguarJS的过程中,大家可以同时学习到更多与应用程序开发相关的知识以及如何构建起更出色、更具吸引力的应用成果。如果大家希望在应用程序的创建工作中采取各类最佳实践,那么AngularJS也能够带来极大的助益。总而言之,这套框架的强大功能与特性永远不会让有着应用开发需求的朋友们失望。
AngularJS拥有多项极为出彩的特性,今天我们就以一款简单的应用程序为例帮助大家了解如何对其加以运用。而在配合Firebase的情况下,我们这款简单但却具备实用性的应用能够轻松被构建完成。作为成品,开发完成的这款应用允许大家随时登入或者登录并在其上发布文章。
这是AngularJS与Firebase的介绍:
AngularJS是目前最受Web开发人员青睐的一套JavaScript MVC框架。如果大家希望创建出一款与众不同的应用,那么它绝对是各位的最佳选择——这要归功于其强大的HTML功能扩展特性。在AngularJS的帮助下,我们不再需要使用大量代码来构建应用程序,其惊人的关联性注入与绑定机制将让应用开发变得异常便捷。
在另一方面,Firebase能够为AngularJS提供出色的支持,这就免除了大家为所创建应用程序开发后端支持的烦恼。在Firebase的帮助下,我们的应用程序将能够以实时方式进行数据备份——当然,必要的API调用还是少不了的。
AngularJS本身虽然已经相当强大,但在Firebase的辅助下,我们将能够让自己的应用程序成果更上一层楼。
正文从这里开始,要注意了:
在着手利用AngularJS创建这款简单的小Web应用之前,大家首先需要下载angular-seed项目。下载完成之后,大家需要打开对应的下载目录并安装其中的关联性以实现运行。具体代码如下所示:
$ cd angular-seed $ npm install ## Install the dependencies
下一步则是利用以下代表启动节点服务器:
$ npm start ## Start the server
节点服务器启动并开始运行之后,我们需要打开浏览器并访问http://localhost:8000/app/index.html,此时其中会显示正在运行的默认应用。
接下来访问angular-seed项目文件夹下的该应用目录,应用程序的代码就保存在这里。
作为该应用程序的核心,app.js也将存放在该应用文件夹内。所有应用层级的模块与app.js内的路由都需要进行声明。
另外,大家还会在这里找到angular-seed的两个视图,即view 1与view 2。它们始终以默认形式存在。我们需要在应用文件夹中将这些视图删除。
现在开始我们要从零开始创建应用程序了:大家首先需要打开app.js并删除其中的全部已有代码。在app.js当中定义我们的应用程序路由,这要求大家使用ngRoute,AngularJS当中的模块之一。默认情况下app.js并不包含该模块,因此我们需要手动将其注入至应用程序当中从而加以使用。大家可以利用以下代码完成该AngularJS模块的添加工作:
angular.module('myApp', [ 'ngRoute' ])
ngRoute模块将带来一项重要的组件,即$routeProvider,其能够完美地对路由进行配置。我们需要使用以下代码将$routeProvider注入至angular-module的配置方法当中,从而完成路由定义:
''use strict''; angular.module('myApp', [ 'ngRoute' ]). config([''$routeProvider'', function($routeProvider) { // Routes will be here }]);
完成以上步骤后,现在我们就可以打开index.html了。将index.html当中的全部内容清除,只保留脚本引用以及div。
每一次进行路由变更时,我们都需要按照以上方法对div内容进行调整。(想学更多推荐PHP中文网,里面有你想要看的angularjs视频教程)
现在在视图当中创建符号:
我们需要在app目录当中创建一个新的文件夹并将其命名为home。在该文件夹当中,我们额外再创建两个文件夹,分别为home.js与home.html。首先打开home.html并将以下代码添加进去:
<!DOCTYPE html> <html ng-app="myApp"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="icon" href="http://www.php.cn/favicon.ico"> <title>AngularJS & Firebase Web App</title> <link href="http://www.php.cn/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="http://www.php.cn/examples/signin/signin.css" rel="stylesheet"> <link href="justified-nav.css" rel="stylesheet"> </head> <body> <div> <div> <h2>AngularJS & Firebase App!</h2> </div> <form role="form"> <input type="email" placeholder="Email address" required="" autofocus=""> <input type="password" placeholder="Password" required=""> <label> <a href="#"> Sign Up</> </label> <buttontype="submit">Sign in</button> </form> </div> </body> </html>
在home.js当中,我们则需要创建一套路由机制以访问home视图。另外还需要为由home视图创建的$scope设置一套控制器。控制器永远负责控制与之对应的特定视图。具体代码如下所示:
use strict'; angular.module('myApp.home', ['ngRoute']) // Declared route .config(['$routeProvider', function($routeProvider) { $routeProvider.when('/home', { templateUrl: 'home/home.html', controller: 'HomeCtrl' }); }]) // Home controller .controller('HomeCtrl', [function() { }]);
现在应用程序已经准备就绪。打开app.js,而后将myApp.home home模块添加到该应用当中。利用$routeProvider.otherwise方法为我们的应用程序声明一套指向home视图的默认路由,具体代码如下所示:
'use strict'; angular.module('myApp', [ 'ngRoute', 'myApp.home' // Newly added home module ]). config(['$routeProvider', function($routeProvider) { // Set defualt view of our app to home $routeProvider.otherwise({ redirectTo: '/home' }); }]);
如果大家希望显示自己的home页面,则将home.js添加到该应用的主HTML模板文件当中。要完成这项操作,请打开index.html文件并湢以下代码:
<script src="home/home.js"></script>
现在一切工作已经完成,该应用随时准备加以运行了!要开始使用这款应用,我们需要重启服务器并将自己的浏览器指向http://localhost:8000/app/index.html以访问登入页面,在这里大家可以实现对该应用程序的访问。
如果大家需要使用Firebase(具体理由如前文所述),则需要首先创建一个Firebase账户。在账户创建完成后,我们将屏幕上所显示的已创建应用url添加进来,而后点击“管理该应用”。
创建自己的应用程序感觉不错吧?Angular.js能够为此类开发工作提供我们所需要的一切。而且只需几分钟,我们的这款简单小应用就已经正式上线啦!
好了,以上就是本篇关于angularjs开发web应用的全部内容了(想学更多就拉PHP中文网,AngularJS使用手册栏目学习),你学会了吗?没学会的继续读,知道学会为止。有问题的可以在下方留言提问。
【小编推荐】
angularjs的路由原理你知道吗?这里有angularjs路由的详细原理
angularjs应用场景有哪些?angularjs的应用场景介绍
以上就是angularjs怎么开发web应用?angularjs开发web应用实例的详细内容,更多请关注php中文网其它相关文章!
Django | 静态文件处理
Django: 1.8.7
在使用 django
开发中,不可避免的总会遇到静态文件的处理,特别对于前端来说,页面的调试都是依赖静态文件(JS,CSS,Image等等),Django
在静态文件处理这一块做的不错,但不是最优秀,毕竟 Django
只是一个框架而已,更多的业务需要搭配其他工具共同完成,这是后话。
1 文件分类
Django
把静态文件分成了两类:static
和 media
,看了 Django
的文档之后,发现 Django
是按照是否与用户互动来进行区分的
static
: 应用页面需要的(JS, CSS, Image...),这些相对来说是提供给用户的,即这些文件(非严格讲)没有与用户进行互动,开发者产生这些文件为访问用户服务,用户只是单纯的享受应用服务。media
: 用户与应用程序进行交互的文件(用户上传的文件等等)
2 static 文件
Django
使用下面几项来处理 static
文件
STATIC_ROOT
STATIC_URL
STATICFILES_DIRS
STATICFILES_STORAGE
STATICFILES_FINDERS
每一项的具体作用不写了,不懂的可以去翻看官方文档,已经非常清晰。
2.1 开发环境
2.1.1 在自定义的 STATICFILES_DIRS
寻找静态文件
以下是我使用的方式:推荐
保证
django.contrib.staticfiles
在INSTALLED_APPS
中.在
TEMPLATES
配置中添加django.template.context_processors.static
在模板中使用
STATIC_URL
变量,eg:<img src="{{STATIC_URL}}girl.png>
2.1.2 在自定义的 STATIC_ROOT
寻找静态文件
如果你想访问静态文件时,静态文件在 STATIC_ROOT
中寻找
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
这种方法不推荐,理由:开发过程中需要不断的执行 ./manage.py collectstatic
2.2 生产环境
生产环境不同开发环境,生产环境下(DEBUG=False
),django.contrib.staticfiles
是不起任何作用的,也就说 django.contrib.staticfiles
只对开发环境(DEBUG=True
)开启
生产环境我们一般都是使用 web服务器
来管理静态文件,管理方法就不写了,不懂可以翻看文档
2.3 CDN 服务
根据配置文件的不同(develop.py production.py
), 设置不同的 STATIC_URL
, 这样很容易结合 CDN
服务,生产环境配置 CDN
,这就扯到高并发去了
2.4 开发环境下默认静态文件服务运行原理
这个原理很简单,因为 django.contrib.staticfiles
在 INSTALLED_APPS
中,Django
自动加载 django.contrib.staticfiles
的 urls.py
, urls.py
源代码如下:
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.staticfiles.views import serve
urlpatterns = []
def staticfiles_urlpatterns(prefix=None):
"""
Helper function to return a URL pattern for serving static files.
"""
if prefix is None:
prefix = settings.STATIC_URL
return static(prefix, view=serve)
# Only append if urlpatterns are empty
if settings.DEBUG and not urlpatterns:
urlpatterns += staticfiles_urlpatterns()
重点是 staticfiles_urlpatterns
这个函数,自动把 settings.STATIC_URL
作为前缀,这些细节我们都不用管,Django
都帮我们搞好了
3 media 文件
media
这里不仅仅包含多媒体文件,包括用户上传的文档
,自定义的css
等等
Django 使用下面几项来处理 media
文件
MEDIA_ROOT
MEDIA_URL
3.1 开发环境
以下是我使用方式
在 TEMPLATES 配置中添加
django.template.context_processors.media
修改
urls.py
入口文件
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
在模板中直接使用
MEDIA_URL
变量.
<video width="320" height="240" controls="controls">
<source src="{{ MEDIA_URL }}movie.ogg" type="video/ogg">
<source src="{{ MEDIA_URL }}movie.mp4" type="video/mp4">
</video>
3.2 生产环境
同 2.2
3.3 小结 media
其实严格来说 media
文件都是静态文件,静态文件的打包,版本控制等等需要借助其他工具来完成(前端工程范畴),跟 static
最大的区别是否由用户产生,仅此而已。Django-1.3
之前统一使用 media
进行管理,至于为了还会分出上面类型,不能预测
4 总结
随着现代前端工程的发展,Django
处理静态资源不能满足我们的需要,当下还需要结合其他工具共同完成日益复杂的前端工程。
django 生产环境中静态文件处理办法
该方法只支持django>=1.5
1.setting.py设置
DEBUG = False STATIC_ROOT = os.path.join(BASE_DIR, 'statics')
2. 执行collectstatic命令:
python manage.py collectstatic
django把静态文件拷贝到你设置的statics目录下(这样可以更方便的和nignx集成,权限管理也更方便)
今天关于Golang 开发web应用时的静态文件处理方法(v0.01)和golang 静态文件服务器的分享就到这里,希望大家有所收获,若想了解更多关于Angular JS 开发Web应用程序、angularjs怎么开发web应用?angularjs开发web应用实例、Django | 静态文件处理、django 生产环境中静态文件处理办法等相关知识,可以在本站进行查询。
本文标签: