2017-10-18 10 views
0

나는 quick start을 따라 작업하고 hello world webpart를 만들었습니다.Sharepoint SPFX - 외부 자바 스크립트로드 문제

나는 트위터 위젯을 포함 할, 그래서 외부 자바 스크립트를 추가하는 방법에 대한 가이드를 따라 한 this이 자식 허브에서 연결되어

나는 내 config.json에 다음을 추가

"externals": { 
    "widgets":"https://platform.twitter.com/widgets.js" 
}, 

및 나는 다음과 같은 오류가,

import 'widgets'; 

로 가져 그러나

***Failed to load component "ab3668f3-39a2-4b40-a307-a1bea4023df9" (TwitterWebPart). 
Original error: ***Failed to load URL 'https://platform.twitter.com/widgets.js' for resource 'widgets' in component 'ab3668f3-39a2-4b40-a307-a1bea4023df9' (TwitterWebPart). There was a network problem. 
This may be a problem with a HTTPS certificate. Make sure you have the right certificate. 

URL은 https://platform.twitter.com/widgets.js입니다.

답변

1

여기에는 2 가지 문제가있는 것처럼 보입니다.

This may be a problem with a HTTPS certificate. -이 오류는 twitter가 끝난 것으로 보입니다. 우리는 그것에 대해 아무 것도 할 수 없습니다.

두 번째로 widgets.js은 AMD가 아닙니다. 따라서 약간 다른 방식으로로드해야합니다.

참조 - Loading a non-AMD module

이러한 문제를 해결하기 위해, 나는 로컬 https://platform.twitter.com/widgets.js 파일을 다운로드하고 다른 폴더에 추가.

그 후, 아래와 같이 config.json 수정 : 여기

"externals": {  
     "widgets": { 
      "path": "scripts/widgets.js", 
      "globalName": "twttr" 
     } 
    }, 

, 내가 솔루션의 루트에 scripts라는 이름의 폴더를 생성하고, JS가 파일을 추가했다.

당신의 import 문을 수정하고 다음과 같이 교체 추가

require("widgets"); 

를 내용이 페이지에 주입으로 표시되지 않습니다 트위터 피드, 당신의 트윗을로드 추적 코드를 추가

public constructor() { 
    super(); 
    let w= require("widgets"); 
    setTimeout(() => w.widgets.load(), 0); 
} 

내 폴더 구조는 다음과 같습니다 :

enter image description here

이제 꿀꺽 꿀꺽 서비스를 실행하면 제대로 작동합니다.