Elixir 애플리케이션에 정적 자산을 포함하는 방법

4992 단어

tl;박사


  • 정적 자산을 /priv 디렉토리에 넣습니다.
  • mix.exs에서 앱의 원자를 식별합니다. 이 예에서는 :my_app 를 사용합니다.
  • Application.app_dir/2를 사용하여 파일 경로를 가져옵니다.
  • 프로젝트의 필요에 따라 파일을 읽으십시오. 한 가지 방법은 File.stream!/3 입니다.

  • 예시:

    def get_my_file_stream() do
      Application.app_dir(:my_app, "/priv/my_file.txt")
      |> File.stream!()
    end
    


    더 깊이 다이빙



    위의 정보로 문제가 해결되었다면 좋습니다. 계속 진행하고 이 페이지를 닫을 수 있습니다.

    그러나이 주제에 대해 더 알고 싶다면 계속 읽으십시오.

    OTP의 유산



    Elixir 프로그래밍 언어는 Erlang/OTP 위에 구축되었습니다. Erlang/OTP에 대해 모른다면 this page from the Erlang FAQ을 확인하십시오.

    Erlang/OTP 애플리케이션 내에는 다음과 같은 표준 디렉토리 구조가 있습니다.

    ─ ${application}
        ├── doc
        │   ├── internal
        │   ├── examples
        │   └── src
        ├── include
        ├── priv
        ├── src
        │   └── ${application}.app.src
        └── test
    


    이러한 애플리케이션에서 정적 자산을 저장하기 위한 적절한 디렉토리는 /priv 이며 Elixir는 이 구조를 상속합니다.

    Erlang/OTP 애플리케이션에 대한 자세한 내용을 보려면 check out this page in the OTP Design Principles User’s Guide .

    Erlang :code 모듈 활용



    위에서 Application.app_dir를 사용했지만 이것이 파일 경로를 얻는 유일한 방법은 아닙니다.

    또 다른 접근 방식은 Elixir 코드에서 직접 호출할 수 있는 Erlang:code 모듈을 사용하는 것입니다(문서here ).
    :code 모듈에는 지정된 응용 프로그램(docs here )의 priv 디렉토리 경로를 반환하는 priv_dir/1라는 함수가 있습니다. 그런 다음 Path.join/2 를 사용하여 파일의 전체 경로를 얻을 수 있습니다.

    def get_my_file_stream() do
      :code.prive_dir(:my_app)
      |> Path.join("my_file.txt")
      |> File.stream!()
    end
    


    더 많은 콘텐츠



    이 내용이 마음에 드셨다면 다른 게시물도 마음에 드실 것입니다. 내 새 게시물에 대한 알림을 받으려면 내 brief monthly newsletter를 구독하십시오.
  • Reading the Elixir source code to learn how if blocks work
  • I published my first Elixir package to hex!


  • The weird quirk of JavaScript arrays (that you should never use)
  • Does Elixir have for loops?
  • Learn Elixir with me!
  • Project Tours: Bread Ratio Calculator
  • Changing Emoji Skin Tones Programmatically

  • 5 tips for publishing your first npm package
  • 4 Hugo Beginner Mistakes
  • 좋은 웹페이지 즐겨찾기