【问题标题】:load local files outside NWJS app在 NWJS 应用程序之外加载本地文件
【发布时间】:2017-02-25 16:03:57
【问题描述】:

当我在本地工作时,我想在两个或多个(nwjs 和其他类型的)项目之间共享代码。文件夹结构:
-项目 1
-项目 2
- 共享代码

在发布应用程序时,我将外部文件构建到每个项目应用程序内的文件中。

但我无法访问 node-webkit/nwjs 应用文件夹之外的文件。

我尝试了以下方法:
在清单文件中设置 "chromium-args": "--allow-file-access-from-files" 但我认为这是现在的默认设置。
使用 file:///chromium-extension:/// 前置相对路径,但我认为这仅适用于绝对路径?
动态加载文件并使用path.relative( process.cwd(), "../shared_code/scripts/controllers/searchController.js" );

该应用的用户可以将它放在他计算机上的任何位置。

是否可以在本地从nwjs项目文件夹外加载js和css文件和图片?

nwjs sdk 版本 0.19.5

【问题讨论】:

  • 我的问题有一个逻辑谬误:我只需要在开发过程中本地应用程序文件夹之外的文件,所以我实际上可以使用绝对路径。对我有用的是 file:/// 前置,而 chromium-extension:/// 没有。但我认为对于想要指向 nwjs 应用程序文件夹之外的相对路径的人来说,这个问题仍然有效。

标签: node-webkit nwjs


【解决方案1】:

我在尝试在 NW.js 应用程序之外加载图像时遇到了类似的问题。我发现这解决了我的问题。尝试将此添加到您的 JSON 清单文件中。这对我有用...

"chromium-args": "--allow-file-access-from-files --allow-file-access --user-data-dir"

你知道,我最初尝试过这个......

"chromium-args": "--allow-file-access-from-files --allow-file-access --user-data-dir --mixed-context"

但它停止了 jquery 加载。 然后,您可以使用file:/// 访问文件,并在机器上的任何位置使用绝对路径。

我希望这会有所帮助。

【讨论】:

    【解决方案2】:

    对于共享代码,当代码是(或可以是)节点模块时,能够npm link 将其添加到您的项目中非常有帮助。 (它对 NW.js 应用程序的工作方式与对 Node.js 的工作方式相同:)

    cd shared-code
    npm link
    
    cd ../project-1
    npm link shared-code
    
    cd ../project-2
    npm link shared-code
    

    【讨论】:

      猜你喜欢
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      • 2023-03-10
      • 2015-10-29
      • 1970-01-01
      • 2019-08-01
      相关资源
      最近更新 更多