【问题标题】:uwp how to link to local web-resourcesuwp 如何链接到本地​​网络资源
【发布时间】:2016-08-08 19:54:59
【问题描述】:

我需要在我的 UWP 应用程序中显示复杂的 html 模板,并且这个 html 模板引用了我想要存储在 Assets 目录中的文件。但我找不到任何方法。

这是我的模板。

<!DOCTYPE html>
<html>    
    <head>
    <meta charset="utf-8">
    <script src="Calculator/test.js" type="text/javascript"></script>
    <other css/js files>
    </head>
<body></body></html>

在我的应用程序中,我有几个项目,我试图在模板中使用的文件存储在 Assets 目录中的主项目(该项目用作入口点)中。 所以在visual studio中我在这个路径中看到了这个test-js文件:“Project/Assets/Calculator/test.js” 该文件的内容:

console.log("file is loaded!");

模板存储在“Project/Assets/CalculatorTemplate.html”中

如果我尝试使用这种方式,我会收到 Javascript 严重错误:

JavaScript critical error at line 1, column 1 in about:Calculator/test.js\n\nSCRIPT1002: Syntax error

我尝试将 js 文件的源更改为 ms-appx-web - 在这种情况下我没有错误,js-console 中没有 console.log 数据。 谁能告诉我如何引用模板中的本地文件? :/

【问题讨论】:

    标签: c# uwp


    【解决方案1】:

    ms-appx-web:// 是在 webview 中加载本地应用程序内容的正确方案。它代表部署后的应用程序的本地文件夹。

    您项目的内容文件夹“按原样”复制到应用程序安装文件夹,因此如果您在${projectRoot}/Assets/Myfile.xxx 中有文件,则可以从${applicationInstallationFolder}/Assets/Myfile.xxx 获得。

    由于您的文件位于Assets/Calculator/test.js,其URI 将为ms-appx-web:///Assets/Calculator/test.js。不要忘记三重/,这意味着路径是绝对路径

    <!DOCTYPE html>
    <html>    
        <head>
        <meta charset="utf-8">
        <script src="ms-appx-web:///Assets/Calculator/test.js" type="text/javascript"></script>
        <other css/js files>
        </head>
    <body></body></html>
    

    【讨论】:

    • 谢谢。当我找到一个 ms-appx-web 方案并且我忘记使用三重 / 符号时,似乎我已经完全糊涂了:(
    猜你喜欢
    • 2016-07-17
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 2022-01-11
    相关资源
    最近更新 更多