require引用文件路径方法与问题总结

转载 2012年03月23日 18:45:16
22nd, 2011

同一目录下的文件,如/usr/local/ruby/foo.rb与/usr/local/ruby/bar.rb两个文件。
如果直接在foo.rb中

1 require 'bar'

执行时会报找不到bar.rb错误。
这是因为运行

1 /home/oldsong$ ruby /usr/local/ruby/foo.rb

时会在ruby安装的lib目录和/home/oldsong/目录下查找bar.rb。而不会去rb文件的目录/usr/local/ruby/下查找。
所以除引用系统rb外,require中不能用相对路径。

下面结合我个人经验介绍几种引用单个和目录下所有rb的方法。

1、引用一个文件

例: 引用当前rb同目录下的file_to_require.rb
先介绍3种方法

1 require File.join(__FILE_'../file_to_require')。
2 require File.expand_path('../file_to_require'__FILE__)
3 require File.dirname(__FILE__) + '/file_to_require'

其中,File.expand_path是Rails常用的做法。
__FILE__为常量,表示当前文件的绝对路径,如/home/oldsong/test.rb

法四:

1 $LOAD_PATH.unshift(File.dirname(__FILE__))
2 require 'bar'

先把目录加入LOAD_PATH变量中,然后可直接引用文件名。

2、引用一个目录下所有文件

Ruby没有Java中的import java.io.*;
引用时不能用通配符,估计以后的版本有可能加上。

例:引用当前rb相同目录下lib/文件下所有*.rb文件。
法一:

1 Dir[File.dirname(__FILE__) + '/lib/*.rb'].each {|file| require file }

法二:
一个gem搞定

https://rubygems.org/gems/require_all

requirejs:模块加载(require)及定义(define)时的路径小结

接触过requirejs的童鞋可能都知道,无论是通过define来定义模块,还是通过require来加载模块,模块依赖声明都是很重要的一步。而其中涉及到的模块路径解析,对于新手来说,有的时候会让人觉得...

php学习(三)关于身份验证、以及require路径问题

1、首先是时间格式的数据插入: 如果数据库中数据的格式是:datetime, $currentTime = date('Y-m-d H:i:s');之前是直接插入$currentTIme,无用。需...

RequireJS中js文件路径加载问题

学习requirejs我觉得刚开始的时候,我自己越学越晕。而且,总感觉实践出来的东西和教程上的不一致,让我一度怀疑这个教程是不是有问题。 现在,我总觉自己在学习requirejs时,遇到的几个槛。 ...

Yii2学习笔记(三):require的使用:物理路径、绝对路径、相对路径

一、require:要使用物理路径use app\class1\class1; require('G:\PHP\basic\class1\class1.php');//注意使用物理路径,否则找不见文件...

include,require路径问题

php中require/include 包含相对路径的解决办法   在PHP中require,include一个文件时,大都是用相对路径,是个很头疼的问题。   例如:  (网站根目...

ruby---如何动态设置require的rb文件路径

我在其他地方下载了一个rb文件,我想加载到我的程序里面来,我希望动态加载进来,如何设置它呢?ruby有很多的内部全局变量:我们可以在文件头加载这个语法就搞定了$LOAD_PATH.unshift("*...

nodejs的require会寻找目录下默认的index文件,如果只提供目录路径的话

但我们去调用模块时候,如果require()里面写的是一个文件夹的名字,而不是一个具体的js文件时候  他会主动去寻找index.js这个文件,因为这个是默认的。  EG; 目录的路径如下 ...
  • f112122
  • f112122
  • 2015年04月03日 20:54
  • 2838

nodejs中require的路径是一个文件夹时发生了什么

node中使用require的时候如果路径是一个文件夹时,或者特殊的情况require('..');require('.'); 这是node实战这本书里说的情况,但是我在node6.9版本中...

关于Web系统引用js或其他文件路径读取的问题

1.问题讨论       我们在开发web应用程序的时候会涉及js/css/handle/image/其他附件读取的问题。      当我们在当前页面引用js/css/image等文件的时候有...

Hive HDF 引用资源文件路径问题

1.UDF中没有引用其他资源文件 Hive UDF 函数,写完后打成jar包。放到指定目录下 例如:/home/hadoop/udf/ 并且在该目录下启动hive cli 执行add jar /...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:require引用文件路径方法与问题总结
举报原因:
原因补充:

(最多只允许输入30个字)