2013-09-01 4 views
0

사용자 DNN 모듈을 만들었습니다.
그리고 masonry 플러그인을 사용하고 싶습니다.
그래서 VS의 모듈 프로젝트에서 스크립트 폴더를 만들고 거기에 JS 파일을 넣었습니다. 내가 추가 한 ASCX 파일의보기에
:ascx에서 스크립트의 상대 경로를 설정하는 방법

<script src="Scripts/jquery.infinitescroll.min.js"></script> 
<script src="Scripts/masonry.pkgd.js"></script> 
<script src="Scripts/imagesloaded.js"></script> 

을하지만 콘솔에서 페이지 eith 모듈을로드 할 때 내가 얻을 : 추가하고 상대 경로를 설정하는 방법은 무엇

GET http://dnn7site/resources/shared/scripts/jquery/jquery.min.map 404 (Not Found) Masonry:457 
GET http://dnn7site/jquery.min.map 404 (Not Found) Masonry:464 
GET http://dnn7site/Demos/Scripts/masonry.pkgd.js 404 (Not Found) Masonry:751 
GET http://dnn7site/Demos/Scripts/imagesloaded.js 404 (Not Found) Masonry:752 
GET http://dnn7site/Demos/Scripts/jquery.infinitescroll.min.js 404 (Not Found) 

DNN의 스크립트에? 지침에 따라, Masonry getting started documentation에 리소스 파일의 전체 경로를 포함

답변

0

봅니다 :

사이트에서 벽돌 스크립트를 포함합니다. 예를 들어

<script src="/path/to/masonry.pkgd.min.js"></script> 

:

<script src="/desktopmodules/com.demo.masonry/Scripts/jquery.infinitescroll.min.js"></script> 
<script src="/desktopmodules/com.demo.masonry/Scripts/masonry.pkgd.js"></script> 
<script src="/desktopmodules/com.demo.masonry/Scripts/imagesloaded.js"></script> 
+0

데모가 경로에서 손실되었습니다. – 1110

+0

'~ /'를 포함하도록 답변을 업데이트했습니다. 시도해보십시오. 분명히'Scripts' 폴더가 루트에서 곧바로 상주하는 경우에만 작동합니다. –

+0

여전히 404이고 경로는 다음과 같습니다. GET http : //dnn7site/Demos/~/Scripts/jquery.infinitescroll.min.js 404 (찾을 수 없음) Masonry : 750 GET http : // dnn7site/Demos/~/Scripts/imagesloaded.js 404 (찾을 수 없음) Masonry : 752 GET http : //dnn7site/Demos/~/Scripts/masonry.pkgd.js 404 (찾을 수 없음)' – 1110

2

당신은 (기능 DNN에 추가 된 6.1 이상) DotNetNuke의에 스크립트를 포함하는 클라이언트 의존성 프레임 워크를 사용한다. 우선 순위를 제어하고보다 효과적인 페이로드를 위해 스크립트를 함께 결합하는 프레임 워크를 허용합니다.

정보에 대한 위키 항목은 여기에 있습니다 : 본질적으로

http://www.dnnsoftware.com/wiki/Page/Client-Resource-Management-API

, 그것은이처럼 쉽게 :

<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %> 

<dnn:DnnJsInclude runat="server" FilePath="~/Resources/Shared/Scripts/jquery/jquery.hoverIntent.min.js" /> 

당신이 코드를 통해 수행 할 경우,이 시도 :

RegisterStyleSheet(Page page, string filePath) //default provider and default priority 
2

내 맞춤 모듈의 스크립트 또는 CSS의 경우, lly는 내 컨트롤의 PreRender 이벤트에 ClientResourceManager에 대한 호출을 넣습니다. ControlPath를 사용하여 스크립트를 참조하는 모듈 컨트롤의 상대 경로를 가져옵니다. 예 :

protected override void OnPreRender(EventArgs e) 
{ 
    ClientResourceManager.RegisterStyleSheet(this.Page, this.ControlPath + "css/view.css"); 
    ClientResourceManager.RegisterScript(this.Page, this.ControlPath + "js/view.js"); 
}