Best Way to migrate to V5

It updates with no issues, i tried updating the values, and it reflected in the pdf, and tried changing the template for the invoice, and it did change, and when i remove the logo completely it display the original invoice ninja logo.

@gerootech

Can you inspect the companies table and in the settings column can you please inspect the value of company_logo

It should be something like /storage/{hash}/{hash}.png

The system then build the full path to the logo using your URL + /storage/{hash}/{hash}.png

You’ll need to make sure that file is publicly accessible for the image to resolve correctly within the PDF

Here you are the value from the database

“company_logo”:“/storage/1w7yqbxctnznmz98dbqfz4impkxldkf5/TUYEXerlCMyP4UmeG67w1RjPQSklV810TfS7K5An.png”,
There is a back slash and forward slash that looks like letter V in the configuration, before and after storage but when i submit it here the html code remove the \ and keep the / when i paste the line here in the forums

We see the issue, fix incoming :slight_smile:

i have update to latest now 5.1.13 but still the same issue. also tried to remove the logo and add it again, but didn’t make any difference.

@gerootech

Can you execute the following

php artisan tinker
Company::first()->present()->logo();

This should give you the full url to the company logo, try to execute this in the browser to see whether the logo resolves correctly.

This give me the logo for the first company
“https://www.invoiceninja.com/wp-content/uploads/2019/01/InvoiceNinja-Logo-Round-300x300.png”
however i do have another company, and this is the one i need to get the logo fixed.

and i have changed the default logo for this company, and did the command again, get the url and it was accessible from my browser.

however when i tried to view an invoice i had the same issue with the 2nd company.

Note: i have a local installation not accessible through the internet.

Ok, so this is the issue, we have changed from relative URLs to full path URLs, if yuo are on a linux based system, you will need to add your domain to 127.0.0.1 in the /etc/hosts file. The image must be resolvable by the app over http

It didn’t fix it, however my server is accessible through the browser with no issues, and when i did the php artisan tinker command, and i took the url from the results, i was able to access it from my browser with no issues.

When i do nslookup on the server for my server name that i use to access my invoice ninja, it brings the correct ip address.

How are you running the app? Are you in a docker container? Or some kind of virtualization?

i am running on Apache. ubuntu 20.04 (the ubuntu is a VM, i don’t think this will make any differentce)

I suggest adding the following variable to your .env

LOG_PDF_HTML=true

then when you recreate an invoice inspect the logs and see what URL it is trying to reference for your logo

Which logs i should check, nothing seems to be in laravel log file.

in apache access log i find the following:

[10/Mar/2021:10:25:21 -0700] “GET /storage/1w7yqbxctnznmz98dbqfz4impkxldkf5/equv8KbNO5E5MMpZZbWugjZ0TmkV3fEjvspMWuF1.png HTTP/1.1” 304 735 “https://in5.ghf.loc/” “Mozilla/5.0 (Macintosh; Intel Mac OS X 11.2; rv:86.0) Gecko/20100101 Firefox/86.0”

when i use the full url in my browser, i can see the logo with no issues. but still cannot get it in the pdf.

after you set the .env var are you re’optimizing the cache with php artisan optimize

when you do this, the next time the PDF is generated, the HTML used to generate the PDF will be output’d to the laravel.log file and we can inspect what the URL is.

Hi David,

Here you are the .env

        <table id="entity-details" cellspacing="0"><tr><th data-ref="entity_details-invoice.number_label">Invoice Number</th><th

I can access this image location from my browser.

Note: when i pasted the line it already downloaded the logo to the post

When i saved the log output to html file i was able to view the invoice with the logo.

@gerootech is this a self signed certificate for you site?

@ben any thoughts why headless chrome won’t display the image?

It is selfsigned cert.

trying to change the .env url however the url is working but the logo still comes in https instead of http

Seems it is because of the cert, started http session in private windows and seems the url being generated now in http.

and logo is working fine now.

In general we advise using Let’s Encrypt to generate certs

That is very easy if my server is exposed to the internet, but i don’t have this for the time being. I will use http for now and will try to figure out a way to add the cert into my headless chrome.

1 Like