Absolute css paths in Homestead php - php

I am creating a web app in php and I am using Homestead to test locally.
I have an MVC structure in my project. Here it is:
The file in the right side of the picture exists inside the 'Views' folder.
When I link a css with a relative path, it works:
<link href="/css/bootstrap.min.css"
But when I try to link it with an absolute path it doesn't:
<link href="http://fab.app/public/css/bootstrap.min.css"
Why? And how can I fix it?

Related

I have an odd issue with CSS dir in localhost WAMP (Apache)

I've been pulling my hair out over this one.
<link rel="stylesheet" href="/icons/style.css">
<link rel="stylesheet" href="/css/custom.css">
the custom.css ref works fine, the one in the icons dir just returns a "The requested URL was not found on this server.", it will work however if:
<link rel="stylesheet" href="/css/icons/style.css">
... I drop the icons dir into the CSS dir! So, my local WAMP server install is set to only read CSS files from a dir named CSS?
It's one of those things that seems so random and is sucking so much time and energy from me.
Cheers.
this is mean the dir is incorrect so you need to type the correct one
if the file path points to a file in the icons folder located in the folder one level up from the current folder, then your code should be like this
<link rel="stylesheet" href="../icons/style.css">
if this solution not working for you try one of those
https://www.w3schools.com/html/html_filepaths.asp
Answer is, Apache reserves or configs any folder named 'icons' in some special way... https://electrictoolbox.com/apache-icons-directory/

css file doesn't work on wahmpserver?

I've got a login form with css. When I open it from my whampserver (localhost) it doesn't display the css, but when I save it on my desktop and open it from their it does.
Does anyone have an idea why this happens.
pls don't down vote because it's obvious.
You're using a local absolute path to your CSS file ("C:\Users\marij_000....").
Once you'll deploy your site to a different server it won't be able to access your local computer , thus, the CSS link will be broken.
Best Practice advice. Add a "css" folder to your project and place all the CSS files in that folder, then use a relative path to your files. For example:
<link rel="stylesheet" type="text/css" href="/css/main.css">
the first "/" state that the server will start the path from the project's root folder.

Moving website to localhost: Document Root changed

I have download a website that was written from scratch using PHP, MySql, html, css, jQuery.
After fixing some configuration with MySql and htaccess, I get to a point where all my CSS and JS files are not loaded because of a relative path error.
This is how it looks:
The error in the console GET http://localhost/fonts/fonts.css sends me to index.php which loads all those files with a relative path.
Now, if I remove the / at the beginning of each line, the files will be loaded, however, I get more errors on different pages with bad URLs and such, that means that I need to fix this / problem instead of just renaming the hrefs.
So my question is, how to fix it?
I have tried to set a base href tag:
<base href="http://localhost/israelrescue/">
or
<base href="http://localhost/israelrescue">
or in PHP:
$_SERVER['DOCUMENT_ROOT'] = 'http://localhost/israelrescue';
or
$_SERVER['DOCUMENT_ROOT'] = $_SERVER['DOCUMENT_ROOT'] . '/israelrescue/';
P.S:
israelrescue is the name of the folder I am using in my localhost installation for this website.
Nothing seems to work, any ideas?
Thanks!
Answers:
It's because you've got the site in a subfolder in localhost. Is it possible for you to move the site into the root? I think #MukeshPanchal is telling you to load the assets from live, which is missing the point somewhat. – thebluefox
Looks like this site was not written to be run from within a
sub-folder. Easiest way to work around that would be to set up a
VirtualHost for this project in your local server, so that you can
load it directly via a local domain name, without any additional path.
(And btw., setting DOCUMENT_ROOT to an HTTP URL is complete nonsense.)
– CBroe
You can leave the site in its subfolder as long as you drop the "/" in the beggining of every file path :
<link rel="stylesheet" href="/css/main.css">
<script type="text/javascript" src="/js/common.js"></script>
becomes
<link rel="stylesheet" href="css/main.css">
<script type="text/javascript" src="js/common.js"></script>
Should work like this

Hosted Site Not using CSS/JQuery

I have created a site, running it locally using XAMPP as i developed it, and it runs perfectly when local.
However i tested it when hosted and the CSS & JQuery (Google library) do not work at all.
The CSS tags use the standard:
<link rel="stylesheet" type="text/css" href="/css/css.css">
Is there a reason this wouldnt work when live? But surely this has nothing to do with why JQuery doesnt work either?
I dont feel comfortable leaving it live when it doesnt work, so im sorry i cannot give you a live version to view.
Any help would be great!
Do check with Inspector if the CSS and JS files are loaded correctly when you go live — do note that the first slash in front of the URL means you're referencing the root URL of the live site. Are the directory structures of the local and live site different?
Also, you can try loading the external files using the absolute URL, like http://domain.tld/css/css.css (double check if the file exists, or loadable). If it works, then it's your relative URL path that is not working.
[Edit]: For the sake of completeness, this is how relative URL paths work:
/<fileName>.<fileExtension> will point to the file at the root directory
./<fileName>.<fileExtension> will point to the file in the same directory as the current page
../<fileName>.<fileExtension> will point to the file in the directory one level above, relative to the current directory
Check that you have actually uploded CSS files into /css/ folder. (Obviously /css/ folder should be present on your server)
Make sure you can access you CSS files from the web: eg if you go herehttp://yourdomain.com/css/css.ss you should see the contents of you CSS file.
if you can see the contents of your file here: http://yourdomain.com/css/css.css
then try this:
<link rel="stylesheet" type="text/css" href="http://yourdomain.com/css/css.css">
And as #Terry already mentioned check the paths.

Problems with links not working on local server

I'm trying to set up my site in Dreamweaver CS5 to work with my local server, and I'm having issues with document relative links.
I've got a structure on my HD like this
website
_Common
header.php
_css
twoColFixRtHdr.css
index.php
and the same structure mirrored on my local WAMP server, except on the local server the site is in a subfolder, so it's something like www/website/
The problem is this line inside header.php
<link href="../_css/twoColFixRtHdr.css" rel="stylesheet" type="text/css" />
That looks correct to me pathwise, but on the local server it cannot find that css file from the header.php
If I change it to
<link href="/website/_css/twoColFixRtHdr.css" rel="stylesheet" type="text/css" />
or
<link href="_css/twoColFixRtHdr.css" rel="stylesheet" type="text/css" />
It works fine, but I want to use document relative links if I can, any ideas?
This sounds clear to me, since I'm sure that you include the header file in the index.php file. So the path for the css files is set relatively to the index.php.
you may achieve it by several ways.
one of them: you can setup a VirtualHost (in httpd.conf) and point your subfolder as root folder for host.
If header.php is being included in index.php, the relative link ../_css/ in header.php won't work because index.php is at the same level as _css.
For all intents and purposes, once it's been included in index.php, to the browser, the content in header.php is now simply part of index.php, so all paths need to be relative to index.php.
Ie:
index.php
/my_include_folder
- header.php
/_css
- style.css
Once I add <?php include('my_include_folder/header.php); ?> to index.php, the links to css files, js, and hyperlinks in header.php should be relative to index.php.
Hopefully that makes sense.

Categories