我的网站上有一个名为$ basePath的变量,它被设置为:
$basePath = '/Systems/dgw/';
Run Code Online (Sandbox Code Playgroud)
我在我的所有css,js和图像标签上使用它(缩短以获得更好的可见性):
<link href="<?php echo $basePath; ?>include/assets/css/bootstrap.min.css">
Run Code Online (Sandbox Code Playgroud)
我对这些包含没有问题,它们可以在任何文件和我的文件夹中正常工作.
我有一个包含以下行的页面:
<img src="<?php echo $basePath; ?>images/new_logo.png" alt="logo"/>
Run Code Online (Sandbox Code Playgroud)
图像显示很好.之后的一行说明:
<?php include($basePath.'include/assets/common/topMessages.php');?>
Run Code Online (Sandbox Code Playgroud)
但包含不会发生.当我这样尝试时:
<?php include('../../include/assets/common/topMessages.php');?>
Run Code Online (Sandbox Code Playgroud)
有用.
任何人都知道什么可能是错的?
无论如何,在Java中,无论程序当前运行的平台是什么,都要确定给定路径是否是绝对路径.所以,我想要的可能是以下示例:
在Linux上:
new File("/home/").isAbsolute() // Should return true.
new File("C:/My Documents").isAbsolute() // Should *also* return true.
Run Code Online (Sandbox Code Playgroud)
在Windows上:
new File("C:/Documents").isAbsolute() // Should return true.
new File("/home/").isAbsolute() // Should *also* return true.
Run Code Online (Sandbox Code Playgroud)
我可以编写一些代码来解决这个问题,但我只是想知道是否有人知道用Java提供的内置类来解决这个问题.或者有没有人来过这个问题?你是怎么解决的?
谢谢!
我有一个用户为各种客户的网站输入的URL列表...我正在将此列表从服务器加载到网格中供用户查看...我通过用href HTML包装来使URL可点击标签...问题是,有时用户输入没有http://或www的网址.前缀,因此浏览器将它们视为相对URL,这些URL从来就不是这种情况,因为所有这些网站都是针对我们的客户而且都是外部的.有没有办法强制将这些URL视为绝对而不是相对?
这是一个例子:
<a target='_blank' href='google.com'>google.com</a>
Run Code Online (Sandbox Code Playgroud)
如果你试试这个,你会看到浏览器会认为它是一个不应该是这种情况的相对路径.
谢谢
解:
我选择检查'//'(因为我不知道协议是什么 - 可能是http或https),如果没有找到,我认为它是一个http网站,我用URL作为前缀 - 所以总之,没办法强制浏览器将超链接视为绝对
我试图在我的README.md中创建链接,使用相对路径链接到示例代码,而不是我现在使用的绝对路径.例如,在markdown文件中,如果我使用它:
[someLabel](https://github.com/username/repoName/somePathTo/myExampleCode)
Run Code Online (Sandbox Code Playgroud)
它没有问题.但是我想用这样的东西把它连接起来:
[someLabel](username/repoName/somePathTo/myExampleCode)
Run Code Online (Sandbox Code Playgroud)
这没有链接,因为它给了我'找不到404错误.有没有办法使用相对路径将我在Github上的示例链接到我的README?
给定一个锚元素(类似的东西$("a:first")),你如何获得锚指向的绝对URL?
使用Javascript,是否有标准的方法来获取图像的绝对路径?img.getAttribute("src")仅返回srcHTML中声明的属性.
我编译了我的项目,我的一些项目添加了.dll有绝对引用.当我尝试在另一台机器上运行我的项目时,它会从原始项目路径中查找.dll.
如何使用相对路径使项目查找.dll?
如何在GNU/Linux上的C/C++中从给定的相对路径确定文件或目录的绝对路径?
我知道realpath(),但它不适用于不存在的文件.
假设用户输入../non-existant-directory/file.txt,程序工作目录是/home/user/.
我需要的是一个返回的函数/home/non-existant-directory/file.txt.
我需要此函数来检查给定路径是否在某个子目录中.
我在Java 6上,我有一个方法可以扫描运行时类路径中的文件config.xml.如果找到,我想将文件的内容读成字符串:
InputStream istream = this.getClass().getClassLoader().getResourceAsStream("config.xml");
if(istream != null) {
System.out.println("Found config.xml!");
StringBuffer fileData = new StringBuffer(1000);
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader(fileName));
char[] buf = new char[1024];
int numRead = 0;
while((numRead=reader.read(buf)) != -1) {
String readData = String.valueOf(buf, 0, numRead);
fileData.append(readData);
buf = new char[1024];
reader.close();
}
} catch (FileNotFoundException fnfExc) {
throw new RuntimeException("FileNotFoundException: " + fnfExc.getMessage());
} catch (IOException ioExc) {
throw new RuntimeException("IOException: " + ioExc.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,我得到以下控制台输出:
Found …Run Code Online (Sandbox Code Playgroud) 如果我使用绝对路径,我无法将整个目录移动到新位置.如果我使用相对路径,我无法将单个文件移动到新位置.
这里有什么解决方案?你是否设置了一个包含根路径的配置文件并从那里开始?或者你有一个规则:永远不要移动文件?
我在一些项目中看到人们使用dirname(FILE).有意义的是,我的意思是,为什么不简单地将它留下来,因为dirname无论如何都是相对的(取决于文件所在的位置)?