three.js中文文档学习之如何本地运行详解


Posted in Javascript onNovember 20, 2017

前言

本文属于系列问题,需要的朋友们开始之前可以参考以下的两篇文章:

1、three.js中文文档学习之创建场景

2、three.js中文文档学习之通过模块导入

如果你只是使用程序化的几何体,不需要加载任何材质,网页应该直接从文件系统加载,只需要双击文件管理器中 HTML 文件,应该在你的浏览器能够运行(地址栏长这样子:file:///yourFile.html)

从外部文件加载内容

如果你从外部文件下载模块和材质,由于浏览器的 同源政策 的安全限制,会引发安全异常而加载失败。

有两种解决办法:

在浏览器中对于本地文件修改安全性。你才能这样进入网页:

file:///yourFile.html

从本地 web 服务器运行文件,你能这样进入网页:

http://localhost/yourFile.html

如果你使用第一种,要注意你使用同一个浏览器(修改安全性之后的)进行正常上网时会让自己处于易受攻击状态。你可以创建一个独立的浏览器配置和快捷方式,仅用作本地开发来确保安全。让我们依次看看每种方法。

运行本地服务器

很多编程语言有内置的 HTTP 服务器。他们没有像 Apache或者 NGINX的全部功能,但对于测试 three.js 应用已足够。

Node.js 服务器

有一个简单的 HTTP 服务器安装包,安装:

npm install http-server -g

运行:

http-server -p 8000

Python 服务器

如果你安装了 Python,在你的工作目录下运行以下命令行:

//Python 2.x
python -m SimpleHTTPServer

//Python 3.x
python -m http.server

会从当前目录转到 localhost 的 80 端口发起服务,地址栏是这样:

http://localhost:8000/

PHP 服务器

PHP 也有内置的 web 服务器,php 5.4.0 及以后:

php -S localhost:8000

Ruby 服务器

如果你安装了这个,你可以运行如下代码:

ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"

Lighttpd

它是一个非常轻量的通用 web服务器。我们以安装了 HomeBrew 的 OSX 系统为例。不像上述服务器,lighttpd 是一个成熟的服务器产品。

通过 homebrew 安装

brew install loghttpd

在你想运行 web 服务器的地方创建名为 lighttpd.conf 的配置文件。示例:

server.document-root = "/var/www/servers/www.example.org/pages/"

server.port = 3000

mimetype.assign = (
 ".html" => "text/html", 
 ".txt" => "text/plain",
 ".jpg" => "image/jpeg",
 ".png" => "image/png" 
)

在配置文件中,改变 server.document-root 到你需要服务的目录。

开启:

lighttpd -f lighttpd.conf

输入 http://localhost:3000/ 就能从你选择的目录提供静态文件的服务。

改变本地文件的安全政策

Safari

使用偏好设置面板开启开发者选项:高级 -> "在菜单栏中显示开发菜单".

然后在 开发 -> 停用本地文件限制。如果你使用 Safari 来编辑和调试的话,值得注意的是 safari 对于缓存总有异常行为,所以在同样的菜单下点击 停用缓存 是个明智的选择。

chrome

首先关闭所有运行的chrome 实例,记住是所有。

在 Windows下,你需要用进程管理器检查是否都关闭了。或者,如果你在系统托盘里看见了 chrome 图标,打开右键菜单点击 退出。应该能关闭所有实例。

然后通过命令行标记启动 chrome 程序:

chrome --allow-file-access-from-files

在 Window 下,最简单的方法就是创建一个特殊的快捷方式图标,在结尾添加如上的标识。(右键 chrome 的快捷方式 -> 属性 -> 目标)

Firefox

在地址栏,输入 about:config

找到 security.fileuri.strict_origin_policy 参数

设定为 false

其他简单都方法也在 Stack Overflow 中有讨论。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
Js日期选择器并自动加入到输入框中示例代码
Aug 02 Javascript
jQuery的选择器中的通配符使用介绍
Mar 20 Javascript
JavaScript动态设置div的样式的方法
Dec 26 Javascript
分享10个优化代码的CSS和JavaScript工具
May 11 Javascript
jQuery实现发送验证码并60秒倒计时功能
Nov 25 Javascript
jQuery纵向导航菜单效果实现方法
Dec 19 Javascript
jquery+html仿翻页相册功能
Dec 20 Javascript
js正则表达式验证表单【完整版】
Mar 06 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
Jun 12 jQuery
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
Mar 13 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
Jan 09 jQuery
详解Vue的ref特性的使用
Jan 24 Javascript
AngularJS实现自定义指令及指令配置项的方法
Nov 20 #Javascript
详解webpack + react + react-router 如何实现懒加载
Nov 20 #Javascript
详细分析jsonp的原理和实现方式
Nov 20 #Javascript
three.js中文文档学习之通过模块导入
Nov 20 #Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
Nov 20 #Javascript
浅谈Vue SSR 的 Cookies 问题
Nov 20 #Javascript
three.js中文文档学习之创建场景
Nov 20 #Javascript
You might like
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
Thinkphp实现自动验证和自动完成
2015/12/19 PHP
js Event对象的5种坐标
2011/09/12 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
JS上传图片预览插件制作(兼容到IE6)
2016/08/07 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
js实现适配不同的屏幕大小
2017/04/10 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
详解vue服务端渲染(SSR)初探
2017/06/19 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
2020/11/17 Vue.js
HTML元素拖拽功能实现的完整实例
2020/12/04 Javascript
[20:30]职业巡回赛回顾
2018/08/09 DOTA
Python MD5文件生成码
2009/01/12 Python
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
Python实现的堆排序算法原理与用法实例分析
2017/11/22 Python
python基于ID3思想的决策树
2018/01/03 Python
Python3.6.0+opencv3.3.0人脸检测示例
2018/05/25 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
绿色城市实施方案
2014/03/19 职场文书