标签: absolute-path

玩笑+打字稿+绝对路径(baseUrl)提供错误:找不到模块

我正在设置配置以在create-react-app + typescript应用程序(我从中弹出)中运行测试。我正在使用笑话+酶。我在tsconfig.json中进行了设置,baseUrl='./src'以便在导入模块时可以使用绝对路径。例如,这是我的一个文件中的典型import语句:

import LayoutFlexBoxItem from 'framework/components/ui/LayoutFlexBoxItem';
Run Code Online (Sandbox Code Playgroud)

您可以看到该路径是绝对路径(来自/ src文件夹),而不是相对路径。当我在调试模式(yarn start)中运行时,效果很好

但是当我运行测试(yarn test)时,出现以下错误:

 Cannot find module 'framework/components/Navigation' from 'index.tsx'
Run Code Online (Sandbox Code Playgroud)

因此,尽管我在tsconfig.json中进行了设置,但看起来jest无法解析此绝对路径。这是我的tsconfig.json:

{
  "compilerOptions": {
    "outDir": "dist",
    "module": "esnext",
    "target": "es5",
    "lib": ["es6", "dom"],
    "sourceMap": true,
    "allowJs": true,
    "jsx": "react",
    "moduleResolution": "node",
    "rootDir": "src",
    "forceConsistentCasingInFileNames": true,
    "noImplicitReturns": true,
    "noImplicitThis": true,
    "noImplicitAny": true,
    "strictNullChecks": true,
    "suppressImplicitAnyIndexErrors": true,
    "noUnusedLocals": true,
    "baseUrl": "./src"    
  },
  "exclude": [
    "node_modules",
    "build",
    "dist",
    "config",    
    "scripts",
    "acceptance-tests",
    "webpack",
    "jest",
    "src/setupTests.ts"
  ]
}
Run Code Online (Sandbox Code Playgroud)

现在,我可以看到 …

absolute-path typescript jestjs visual-studio-code create-react-app

13
推荐指数
12
解决办法
6795
查看次数

VB.NET中绝对路径的相对路径

我正在编写一个VB.NET控制台应用程序,它采用相对路径并吐出所有文件名,或者输出无效错误.我无法从相对路径获取PhysicalPath

例:

  1. 我在文件夹中 C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin\Debug

  2. 我的应用程序SP.exe也在同一个文件夹中.

  3. 我跑:"SP.exe ..\".输出将是文件夹中所有文件的列表"C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin"

  4. 我跑:"SP.exe ..\\..\".输出将是文件夹中所有文件的列表"C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj"

  5. 我跑:"SP.exe ..\\..\\..\".输出将是文件夹中所有文件的列表"C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol"

目前我正在处理一个相对路径,但不再:

    If Source.IndexOf("..\") = 0 Then
        Dim Sibling As String = Directory.GetParent(Directory.GetCurrentDirectory()).ToString()())
        Source = Source.Replace("..\", Sibling)
    End If
Run Code Online (Sandbox Code Playgroud)

我怎样才能轻松处理多个..\

.net path relative-path absolute-path

12
推荐指数
1
解决办法
3万
查看次数

绝对路径和相对路径之间有什么区别?

我问,因为我正在为学校做项目.是的,这是功课.但是,我试图更多地了解它.

这是被问到的一个例子.

•当用户单击"保存"按钮时,将所选记录写入txtFilePath中指定的文件(绝对路径不相对),而不截断当前内部的值.

这就是我的意思,

private void button2_Click(object sender, EventArgs e)
{
    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        StreamWriter myWriter = new StreamWriter(saveFileDialog1.FileName);
        myWriter.Write(txtFilePath.Text);
        myWriter.Close();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我不明白我是否做得对.我知道当我将它保存到我的桌面并从列表框中删除它时,当我再次尝试重新加载时,没有任何显示.这就是我的表格,

private void button1_Click(object sender, EventArgs e)
{
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        StreamReader myReader = new StreamReader(openFileDialog1.FileName);
        txtFilePath.Text = openFileDialog1.FileName;
        txtFilePath.Text = myReader.ReadToEnd();
        myReader.Close();
    }
}    
Run Code Online (Sandbox Code Playgroud)

这是负载,

private void Form1_Load(object sender, EventArgs e)
{
    string[] myFiles = Directory.GetFiles("C:\\");
    foreach (string filename in myFiles)
    {
        FileInfo file = new FileInfo(filename);
        employeeList.Items.Add(file.Name);
    }

    //...
Run Code Online (Sandbox Code Playgroud)

有人可以帮我理解这个吗?

c# path relative-path absolute-path

12
推荐指数
3
解决办法
1万
查看次数

关于配置 SQLite 数据库的 URI 路径的困惑

嗨,我正在使用 Flask 和 Sqlite3 构建一个 Web 应用程序。有一段时间我在连接数据库时遇到问题,但在我写这个时它不起作用:

#version 1
app.config['SQLALCHEMY_DATABASE_URI'] =
'sqlite:////C:/Users/Giang/PyCharmProjects/FlaskWebBlog/FlaskWebBlog/site.db'
Run Code Online (Sandbox Code Playgroud)

Python给了我操作错误:无法打开数据库,因为我在冒号后写了4个斜线。在阅读了 sqlalchemy 文档并进行了多次试验后,我发现这有效:

#with 3 slashes, version 2
app.config['SQLALCHEMY_DATABASE_URI'] = 

 'sqlite:///C:/Users/Giang/PyCharmProjects/FlaskWebBlog/FlaskWebBlog/site.db'
Run Code Online (Sandbox Code Playgroud)

或者这个有 4 个斜线但没有 C:

#version 3
app.config['SQLALCHEMY_DATABASE_URI'] = 

'sqlite:////Users/Giang/PyCharmProjects/FlaskWebBlog/FlaskWebBlog/site.db'
Run Code Online (Sandbox Code Playgroud)

我很困惑,因为基于连接字符串的文档:SQLite 数据库的文件规范被视为 URL 的“数据库”部分。请注意,SQLAlchemy 网址的格式为:

driver://user:pass@host/database
Run Code Online (Sandbox Code Playgroud)

这意味着要使用的实际文件名以第三个斜杠右侧的字符开头。所以连接到相对文件路径看起来像:

# relative path
e = create_engine('sqlite:///path/to/database.db')
Run Code Online (Sandbox Code Playgroud)

以斜杠开头的绝对路径意味着您需要四个斜杠:

# absolute path
e = create_engine('sqlite:////path/to/database.db')
Run Code Online (Sandbox Code Playgroud)

所以根据this,如果我使用绝对路径,我需要4个斜杠,但是当我用版本1这样做时,python给了我错误。当我在版本 2 中使用 3 个斜杠作为绝对路径时,它起作用了。

所以我真的很困惑。谁能为我解释为什么?我真的很感激。谢谢

python sqlite uri relative-path absolute-path

12
推荐指数
1
解决办法
1万
查看次数

QDir mkdir with absolutepath

用Qt创建dir有问题.我想在文档中创建一个目录,所以,我做了一些类似的事情:

QString path("C:/Users/Me/Documents/MyApp/profiles/");
Qdir dir = QDir::root();
dir.mkdir(path);
Run Code Online (Sandbox Code Playgroud)

但这不起作用!我用"/"和"\"测试分隔符,但在两种情况下不起作用.

我怎么能创造我的目录?

谢谢.

directory qt absolute-path mkdir

11
推荐指数
2
解决办法
4万
查看次数

来自基本文件夹的绝对URL,带有重写

我有一个在WampServer上运行本地的项目.这是一个类似MVC的结构; 它将URL重写为index.php?url=$1.完整.htaccess:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)

当我想使用PHP将用户发送到另一个页面location: <location>时,由于重写,所以不能正确地执行此操作(尽管我在技术上总是处于这种状态index.php).

例如,如果我打开http://localhost/project_name/controller/method/并且此控制器的构造函数或方法试图将我发送到:

  • header('location: another_controller/method'); 送我去 http://localhost/project_name/controller/method/another_controller/method/
  • header('location: /another_controller/method'); 送我去 http://localhost/another_controller/method/

但我希望它像这样发送给我:

  • header('location: /another_controller/method'); 送我去 http://localhost/project_name/another_controller/method/

现在我找到的唯一解决方案是:

define('BASE_URL','http://localhost/project_name');
header('location: '.BASE_URL.'/another_controller/method/');
Run Code Online (Sandbox Code Playgroud)

但这并不完美,因为它会导致我必须BASE_URL在域名或文件夹名称发生变化时更改此定义的常量.我也可以创建一个BaseController创建绝对URL的方法,但这种方法基本上也只是前置BASE_URL.

注意: HTML srchref属性不会出现同样的问题,它可以使用相对路径(路径中没有project_name文件夹).但是,我不明白为什么.因为如果标头location导致浏览器将相对URL附加到当前位置,为什么在查找.css.js文件时它没有相同的行为.

所以......这为我提出了几个问题:

  1. 如果我有虚拟主机,我会遇到这个问题吗?
  2. 解决这个问题的最佳方法是什么?
  3. 最好只拥有完整的绝对URL?
  4. 为什么HTML srchref属性不共享此行为?

php .htaccess mod-rewrite relative-path absolute-path

11
推荐指数
1
解决办法
1134
查看次数

静态资源 URL 作为 API 响应中的绝对路径或相对路径

我有一个 Spring boot API 服务,其他网站和移动应用程序调用此 API 来获取数据和图像。图像存储在文件系统中,文件路径存储在数据库中。我正在寻找在 API 响应中返回图像 URL 的最佳实践。

示例数据库记录

 +-----+-------+-----------------+
| Id  | Name  | profile_img_url |
+-----+-------+-----------------+
|  1  | John  | /image/john.jpg |
|  2  | Jane  | /image/jane.jpg |
|  3  | Doe   | /image/doe.jpg  |
+-----+-------+-----------------+
Run Code Online (Sandbox Code Playgroud)

例如我有一个会员API。

https://example.com/get/member/id
Run Code Online (Sandbox Code Playgroud)

该API将返回JSON,其中包含会员图像URL

我应该返回 profile_img_url 作为绝对 URL 还是相对 URL

这是我的想法

带相对 URL 的响应

{
"name" : "John",
"profile_img_url": "/image/john.jpg",
}
Run Code Online (Sandbox Code Playgroud)
  • 在API代码中,无需担心基本URL(域名),调用网站或移动应用程序需要处理基本URL。
  • 在API中,我只是读取并发送配置文件img url,不需要花时间连接域名和文件名来创建绝对URL,因此响应应该很快。

使用绝对 URL 进行响应

{
"name" : "John",
"profile_img_url": "https://example.com/image/john.jpg",
}
Run Code Online (Sandbox Code Playgroud)
  • 在我的 API 中,我需要查找主机名并连接每个请求的文件路径,从而导致 API …

api json assets relative-path absolute-path

11
推荐指数
0
解决办法
1261
查看次数

如何确定已加载类的绝对路径(如果有)?

是否有(兼容的,如果可能的话)确定加载类的绝对路径的方法?

当然,这并不总是可行的(如果你想到动态创建的类),但如果加载的Class在jar中,如何获取这个jar的绝对路径?

java reflection jar classloader absolute-path

10
推荐指数
1
解决办法
2万
查看次数

如何在XCode 4中将分组(本地化)文件的位置从绝对路径更改为相对路径?

我在使用XCode 4中的所有文件位置路径时遇到问题.

我有多个infoPlist.strings和CustomLocalizable.strings(针对不同的语言)组合在一起(XCode会自动执行此操作).查看文件检查器(查看>>实用程序>>显示文件检查器)以查找这些文件(默认语言的英语除外),位置为"绝对路径".

问题是文件检查器中这些文件的位置下拉菜单显示为灰色,已禁用.这使我无法将文件位置从绝对路径更改为相对路径描述.

我需要做什么才能使组中文件的所有路径位置相对?

我已经尝试将文件组的路径位置更改为,例如,"相对于组"或"相对于项目".对于组我也设置了相对路径,点击文件检查器中的位置下拉列表中的小图标.

我一直在寻找一段时间的解决方案,并感谢有人能帮助我回答上述问题.

谢谢!

relative-path absolute-path filepath xcode4

10
推荐指数
1
解决办法
3962
查看次数

你如何解决相对的Uri?

给定一个绝对Uri和相对Uri或相对路径,你如何获得绝对的Uri指向相对位置?

例如,假设我们有Urifor file:///android_asset/dir,指向我们资产中的某个位置.进一步假设在其他地方,我们有一个相对的路径/foo.该Uri相对路径的绝对值应为file:///android_asset/foo.UriAndroid SDK中有什么东西,或者其他地方,我缺少那些给我的结果Uri吗?

Uri.withAppendedPath() 不是答案,因为它似乎只是处理尾随目录分隔符:

Uri abs=Uri.parse("file:///android_asset/");
Uri rel=Uri.withAppendedPath(abs, "/foo");
Assert.assertEquals("file:///android_asset/foo", rel.toString());
  // actually returns file:///android_asset//foo

Uri abs2=Uri.parse("file:///android_asset/dir");
Uri rel2=Uri.withAppendedPath(abs2, "/foo");
Assert.assertEquals("file:///android_asset/foo", rel2.toString());
  // actually returns file:///android_asset/dir//foo
Run Code Online (Sandbox Code Playgroud)

Uri.Builder通过buildUpon()Uri,是不是有所改善:

Uri rel3=abs.buildUpon().appendPath("/foo").build();
Assert.assertEquals("file:///android_asset/foo", rel3.toString());
  // actually returns file:///android_asset/%2Ffoo

Uri rel4=abs.buildUpon().appendEncodedPath("/foo").build();
Assert.assertEquals("file:///android_asset/foo", rel4.toString());
// actually returns file:///android_asset//foo
Run Code Online (Sandbox Code Playgroud)

在一个紧要关头,我可以尝试使用java.net.URL它的URL(URL context, String spec)构造函数,或者只是为它滚动一些代码,但我希望尽可能保持Android Uri值的范围,只是为了任何怪癖区分URL …

android relative-path absolute-path

10
推荐指数
1
解决办法
1893
查看次数