例如,如果我编写一个node express应用程序,我就有机会从服务器配置中传递一些env变量。SharePoint Online也有机会吗?由于SharePoint Online是一种托管服务,因此无法实现。是否有可能的解决方法?关于这个问题,我一直在想办法。干杯托马斯
n53p2ov01#
作为一个选项,您可以使用属性包(如站点属性包)定义站点的自定义属性,然后从SPFx Web部件获取这些属性。SharePoint中的许多内容都有属性包,包括租户、站点、列表等。要设置站点的属性包键/值(powershell),请执行以下操作:
Connect-PnPOnline -Url https://<yourdomain>.sharepoint.com/sites/<yoursite> Set-PnPPropertyBagValue -Key MYKEY -Value MYVALUE
要从SPFx Web部件获取此“site”值,可以使用allProperties API(在Web部件初始化中的某个位置):
allProperties
const propertyBag = await sp.web.allProperties.get(); const value = propertyBag.MYKEY; console.log(value) // logs "MYVALUE"
如果不使用pnpjs,则使用相同的代码:
// context = <web part context> const apiUrl = `${context.pageContext.web.absoluteUrl}/_api/web/allProperties`; const rsp = await context.spHttpClient.get(apiUrl, SPHttpClient.configurations.v1); const propertyBag = await rsp.json(); const value = propertyBag.MYKEY;
或者,您可以只放置.env文件(例如,放置到站点资源),然后从SPFx Web部件读取它。不确定这是否是常见的做法在任何方面(可能不是),但只是给予一些选择。
5ktev3wc2#
您能否详细说明您尝试访问哪些变量?
如果你给予一些更多的细节,或者发布一个代码片段,说明你正在努力完成的工作,我相信你可以找到你正在寻找的东西
2条答案
按热度按时间n53p2ov01#
作为一个选项,您可以使用属性包(如站点属性包)定义站点的自定义属性,然后从SPFx Web部件获取这些属性。SharePoint中的许多内容都有属性包,包括租户、站点、列表等。
要设置站点的属性包键/值(powershell),请执行以下操作:
要从SPFx Web部件获取此“site”值,可以使用
allProperties
API(在Web部件初始化中的某个位置):如果不使用pnpjs,则使用相同的代码:
或者,您可以只放置.env文件(例如,放置到站点资源),然后从SPFx Web部件读取它。
不确定这是否是常见的做法在任何方面(可能不是),但只是给予一些选择。
5ktev3wc2#
您能否详细说明您尝试访问哪些变量?
如果你给予一些更多的细节,或者发布一个代码片段,说明你正在努力完成的工作,我相信你可以找到你正在寻找的东西