Meteor.js (한 페이지 웹 앱이 아닌)로 일반적인 웹 사이트를 개발하고 모든 페이지에 대해 특정 css 파일 만로드하려고합니다. . 따라서 모든 페이지가 동일한 CSS 코드를 공유하지는 않습니다. 가능합니까?Meteor.js에서 특정 (전체가 아닌) css 파일 만로드하는 방법
답변
먼저 "유적"사이트를 구축하지 않는 유성을 사용하는 경우 매우 강력한 SPA (단일 페이지 응용 프로그램)를 구축하고 있습니다. 라우팅을 도입하여 "보통"의 웹 사이트를 모방 할 수 있습니다 (IronRouter).
이제 CSS에 대해 확인하십시오. Meteor를 배포하면 모든 CSS와 JS가 병합되고 축소됩니다. 따라서 당신이 원하는 것을 성취하고 싶다면이 패키지를 추가 할 필요가 있습니다. https://github.com/davidd8/meteor-external-file-loader
https://atmospherejs.com/mrt/external-file-loader
그런 다음 한 번 템플릿을 생성 트리거 첨부 :Template.myCustomTemplate.created = function() {
Meteor.Loader.loadCss("//example.com/myCSS/style.css");
};
난 당신이 또한 유성의 자산 API를 통해 유성 서버에서 CSS를로드 할 수 있으리라 생각합니다. 자세히 알아보기 : https://docs.meteor.com/#/full/assets
유성에 대한 매우 짧고 정확한 설명 정말로! :) +1 –
하지만 이전 뷰로 다시 이동하면 CSS가로드됩니다. CSS가 제거되지 않으므로 이전 뷰 CSS가 변경됩니다. – Ankita
질문의 마지막 부분에 "모든 페이지가 동일한 CSS 코드를 공유하지 않습니다." less를 사용하고 다른 div 클래스에서 템플릿을 래핑하는 것을 고려할 수 있습니다. 예를
HTML 파일
<template name="page1">
<div class="page1css">
<p class="content">Page 1 content</p>
</div>
</template>
LESS 파일
.page1css {
.content {
font-size: 2em;
}
}
당신이 당신의 페이지를 포장 할 수 있습니다이 방법 올바른 클래스에서 해당 CSS를 들어
.
이 방법은 어떤 페이지가 방문되었는지에 상관없이 전체 앱에 대한 모든 CSS를 여전히로드합니다. – benstr
예, 사실이지만 한 번만로드됩니다. 그런 다음 템플릿에 대해 특정 CSS를 사용합니다. 유진이 정확히 무엇을 성취하려고했는지 나는 확신하지 못했습니다. – JoshJoe
개인적으로 동일한 개념을 사용하여 다른 템플릿의 스타일 간 겹침을 방지합니다. 차별화를 위해 ID를 사용하는 것이 좋습니다. 템플릿 page1은 "view-page1"이라는 ID를 얻습니다. 충돌을 피하기 위해 view로 시작하는 ID를 사용하지 않는 것을 기억하면됩니다. 또한 공유 스타일이있는 common.less 파일이 있습니다. 'meteor add less' –
간단한 해결책을 찾았습니다. 유성 프로젝트 폴더에 "public"(따옴표 제외)이라는 폴더를 만듭니다. 해당 폴더에서 "css"(따옴표 제외)라는 폴더를 만듭니다. 해당 폴더에 CSS 파일을 넣으십시오. 당신이 특정 CSS 파일은 다음과 같이 적용 할 HTML 파일에서
는 : 이 권장되지 않습니다<head>
<link href="css/yourfile.css" rel="stylesheet">
</head>
- 1. 패키지에서 특정 함수 만로드하는 방법
- 2. 방법 클릭 (전체가 아닌 클릭)
- 3. wxPython에 - 전체가 아닌 행
- 4. 시리즈 전체가 아닌 개별 데이터
- 5. PHP에서 특정 함수 만로드하는 가장 좋은 방법
- 6. Meteor.js에서 특정 템플릿에 스타일 시트를 사용하지 않도록 제외하는 방법
- 7. meteor.js에서 상업용 테마를 사용하는 방법
- 8. Safari 용 CSS 만로드하는 방법은 무엇입니까?
- 9. 전체가 아닌 하나의 요소 만 교체하십시오.
- 10. UpdatePanel이 부분 (전체가 아닌)을 일으키는 중입니다.
- 11. Meteor.js에서 'due due'알림을 구현하는 방법
- 12. 웹 페이지의 본문 만로드하는 방법
- 13. ActiveModel 유효성 검사 만로드하는 방법?
- 14. 페이지 전체가
- 15. 새 AppDomain에 서명 된 어셈블리 만로드하는 방법?
- 16. 특정 클래스를 제외하고 페이지 전체가 사라집니다.
- 17. Meteor.js에서 Cordova 플러그인 사용
- 18. 도메인이 특정 파일 유형이 아닌 경우 리디렉션
- 19. 콤보 박스 열을 datagridview (열 전체가 아닌) 행당
- 20. 모든 NDK 빌드 전체가
- 21. plist 파일에서 선택한 데이터 만로드하는 방법
- 22. 양식에서 OneToMany 연관의 하위 집합 만로드하는 방법?
- 23. Meteor.js에서 Meteor 서버를 다시 시작하는 방법
- 24. meteor.js에서 다른 오브젝트 내의 오브젝트에 액세스하는 방법
- 25. Meteor.js에서 세션 당 목록을 필터링하는 방법
- 26. @NamedEntityGraph의 하위 그래프에 지정된 속성 만로드하는 방법
- 27. Meteor.js에서 카테고리 제거
- 28. meteor.js에서 오류가 발생했습니다.
- 29. 데이터베이스가 Meteor.js에서 "flapping"되었습니까?
- 30. 스칼라의 REPL 탭 완성으로 행 전체가 아닌 열이 읽히는가?
- 그것은 느린 당신의 응용 프로그램을 만들 것입니다. 현재 가장 좋은 방법은 웹 사이트의 모든 CSS를 하나의 파일로 연결하는 것입니다. – stubailo
웹 사이트의 CSS 크기에 따라 다르므로 모든 경우에 해당하는 것은 아닙니다. CSS 로딩 프로세스가 페이지 렌더링을 차단합니다. 따라서 CSS가 거의없는 경우에는 CSS를 완전히로드하거나 인라인하는 것이 좋습니다. 그러나 CSS가 많은 경우 첫 번째 CSS를로드하는 것이 좋습니다. 단 하나의 페이지 또는 두 배 이상의 내용 만 렌더링하고 나머지 스타일은로드하지 않는 것이 좋습니다. 더 많은 정보는 다음에서 찾을 수 있습니다. https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery – Eugene
@Eugene에서 몇 가지 사항을 알려 주시고 답변을 수락 해주십시오. – benstr