vegabook

vegabook

How to serve a pre-created pdf file with Phoenix

I have a very simple site which must simply serve a bunch of pdfs that I have created. So I have two questions:

a) where should I locate the pdf files? Should they be in the “assets” directory or in the “priv” directory? I assume in either case I would create a “pdfs” subdirectory (please tell me if not).

b) How do I reference them in html in my index.html.eex file? Here is what W3schools says I should do for downloadable files:

<a href="/images/myw3schoolsimage.jpg" download>
  <img src="/images/myw3schoolsimage.jpg" alt="W3Schools">
</a>

but but I don’t know how to reference the /pdfs directory (nor indeed the /images directory) shown in that example. How do I translate those fixed paths to the relevant relative pdf file and images directories?

Marked As Solved

kokolegorille

kokolegorille

The recommended way is to put all pdfs under assets/static/pdfs so they would be copied to priv/static/pdfs by webpack copy plugin.

Then You still need to modify your endpoint to allow Plug.Static to serve pdfs…

only: ~w(css fonts images js favicon.ico robots.txt pdfs)

What is under priv/static is served by Plug.Static (if configured in the endpoint) but usually You don’t touch this folder… You put stuff in assets/static and they will be copied.

You should note that priv/static is not under git supervision, so the content is not persisted when You commit…

If You look at your application layout You find this kind of line, but I guess using the path is ok too (I did not test).

<script type="text/javascript" src="<%= Routes.static_path(@conn, "/js/app.js") %>"></script>

Where Next?

Popular in Questions Top

_russellb
I want to try my hand at web scraping. What tools/libraries do I need to use. I’m hoping to turn this into something professional so don’...
New
marius95
Hello everyone, I try to use an Javascript Event Handler in my root.html.leex file. Therefore I created a function in the app.js file: ...
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
LegitStack
I’m trying to make a websocket server in Phoenix or raw Elixir. I heard about gun, I think I could use cowboy, but since I’m not that sma...
New
ycv005
I have followed this StackOverflow post to install the specific version of Erlang. And When I am running mix ecto.setup then getting fol...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New

Other popular topics Top

AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement