2017-11-21 13 views
0

amcharts 라이브러리와 함께 제공되는 샘플 중 하나를 구현하는 간단한 레일 (-v 5.1.4) 응용 프로그램을 실행하려고합니다.레일 5.1.4 :/공급 업체의 제 3 자 자산이보기에 표시되지 않음

여기 작업 한 내용은 다음과 같습니다

  • 생성을 나는 레일 서버와 그래프를 실행 //= require amcharts

/app/assets/javascripts/application.js/app/assets/javascripts/amcharts 폴더

  • 사본을 제 3 자 콘텐츠
  • /app/assets/javascripts/amcharts하려면 추가 원래의 독립 실행 형 HTML보기를 보면서 예상대로 표시됩니다. 따라서 편집 된 코드가 제대로 작동한다고 가정합니다.

    여기 이 무슨 짓을했는지하지 일 :

    • /vendor/assets(/javascripts)/amcharts 폴더
    • 사본을 제 3 자 콘텐츠
    • /vendor/assets(/javascripts)/amcharts하려면 //= require amcharts
    • /app/assets/javascripts/application.js하려면 config.assets.paths << Rails.root.join('vendor/assets(/javascripts)/amcharts')
    • config/application.rb하려면 상대 경로를 추가 추가 추가 생성 나는 오류가 주어지지 레일 서버를 실행하지만 응용 프로그램이 그래프 대신 빈 페이지를 표시 할 때 예상대로 app/assets/application.js

    로, 페이지의 소스 코드 내보기 파일의 코드를 보여줍니다.

    제 생각으로는 amcharts.html.erb입니다. amcharts.coffee- 파일이 내 app/assets/javascripts/ -folder에 있습니다. 그 톱니가 그것이 필요한 파일이라고 잘못 추측 할 수 있습니까?

    또한 app/config/manifest.js이 무엇인지 궁금합니다. 내보기 파일 app/views/amcharts/index.html.erb (amcharts lib 디렉토리에서 샘플의 수정 된 코드)의 단축 버전

    <div id="chartdiv" style="width: 100%; height: 400px;"></div> 
    <script type="text/javascript"> 
    var chart; 
    var chartData = [ { $data } ]; 
    AmCharts.ready(function() { 
        chart = new AmCharts.AmSerialChart(); 
        chart.dataProvider = chartData; 
        $AmCharts.funs 
        chart.write("chartdiv"); 
    }); 
    </script> 
    
  • +0

    이 방법을 시도해 보셨습니까? https://rails-assets.org/#/components/amcharts3 –

    +1

    @WasifHossain 그 보석을 공유해 주셔서 감사합니다. 전에는 다른 보석을 사용해 보았지만 호환되지 않았습니다. 내가 설치할 수 있었던이 하나. 그러나 슬프게도 문제는 여전히 남아 있습니다. 원래 게시물에 내 view-file 코드의 첫 번째 줄을 제공 할 것입니다. 어쩌면 제가 깨닫지 못했던 문제가있을 수 있습니다. 또한 다음 번에 제 3 자 콘텐츠를 추가해야 할 때 같은 문제가 생길까 걱정됩니다. –

    +0

    나는 전혀 두려워하지 말고 오히려 담대히 나아가 야합니다. 개인적으로 제 3 자 자산을 훨씬 더 깨끗하게 유지하는 데 도움이되는 레일 자산을 발견했습니다. –

    답변

    0

    나는 내 파일을 전문가와 공유 할 수있는 기회를 얻었으며 문제를 해결했습니다./응용 프로그램/자산/자바 스크립트에 //= require amcharts3, //= require amcharts3/serial을 추가, 보석 'amcharts 레일' '레일 - 자산 amcharts3'를 설치

    를 application.js : 갈 방법이었다 나는 여전히 공급 업체/자산의 제 3 자 콘텐츠를 포함시키는 방법에 대해 궁금해합니다. 하지만 이제는 잘못된 폴더에 파일이 없어도 모든 작업이 진행되고 있으므로이를 답변으로 표시하겠습니다. 도움을 주신 모든 분들께 감사드립니다!

  • -1

    를 붙이 : 모든 나타내 관련 변경 사항은

    편집 ... 어쨌든 app/assets/javascript/application.js 파일을 만든 것 같다 JS 패키지 바로 아래에 vendor/assets, 아니 vendor/assets/javascripts. 예를 들어 /vendor/assets/amcharts/amcharts.js 라이브러리를 //= require amcharts을 통해 애플리케이션에 추가하십시오.

    vendor/assets/DataTables-1.10.16/js/dataTables.bootstrap4.js 
    vendor/assets/DataTables-1.10.16/js/jquery.dataTables.js 
    vendor/assets/DataTables-1.10.16/css/dataTables.bootstrap4.css 
    

    이 (vendor/assets 아래의 폴더 계층 구조를 참고 DataTables 패키지가 제공하는 정확히입니다.)

    : 나는 레일 (5) 응용 프로그램에서 DataTables 라이브러리를 포함하여 구조화 한 방법보다 구체적인 예를 들어

    는 여기

    application.css :

    /* 
    *= css/dataTables.bootstrap4 
    */ 
    

    응용 프로그램입니다.js :

    +0

    답변 해 주셔서 감사합니다. 라이브러리 파일을 vendor/assets/amcharts에 복사하고 application/j에'// = amcharts/amcharts가 필요하고'// am = require amcharts/serial'를 추가했습니다. 또한 나는'필요한 = amcharts'을 시도했다. 불운. –

    +0

    이것은 오타입니까? '// = amcharts'가 필요합니다. (편집 : 사용하려고하는 라이브러리의 올바른 이름이 아님, 행운을 빕니다.) –