I cannot link my css and and image to my html - php

I tried to link a css to html in laravel and link an image (both css and image are in public folder) but it does not work. I tried using asset and url but it does not work either. I don't understand what is wrong. This is how I wrote the link:
<link rel="stylesheet" href="/css/styles.css">
<img src="/img/logo-kitsune-dojo.jpg" alt="logo kitsune dojo">
I have already tried asset and url. They don't work. I want mi css and my imagen to link.

use asset() function generates a URL
<link rel="stylesheet" type="text/css" href="{{ asset('css/styles.css') }}">
<img src="{{ asset('img/logo-kitsune-dojo.jpg') }}" alt="logo kitsune dojo">

In Laravel, you can use asset() helper function to link assets like CSS and images:
<link rel="stylesheet" href="{{ asset('css/styles.css') }}">
<img src="{{ asset('img/logo-kitsune-dojo.jpg') }}" alt="logo kitsune dojo">
Make sure that the assets path is correct and that the files are in the public directory of the project.

You may solve this problem by using asset() helper function
For css link: If your css exist in public folder folowing this directory you may use this
For Image: If your image exist in public folder folowing this directory you may use this

**To link a CSS page in Laravel, you can follow these steps:
1Create a CSS file in the public folder of your Laravel project. For example, you can create a file named style.css in the public/css folder.
2In your HTML file, add a link to the CSS file in the head section. You can use the asset function provided by Laravel to generate the URL to your CSS file.**
<head>
<link rel="stylesheet" href="{{ asset('css/style.css') }}">
</head>
**3.Make sure that the URL generated by the asset function is correct. The URL should start with the base URL of your Laravel application, which is usually the root directory of your project.
That's it! Your CSS file should now be linked to your HTML file, and the styles defined in your CSS file should be applied to your HTML content.**
**To add an image to a web page in Laravel, you can follow these steps:
1 Place the image file in the public folder of your Laravel project. For example, you can create a folder named images in the public folder and place your image file in it.
2 In your HTML file, use the img tag to display the image. You can use the asset function provided by Laravel to generate the URL to your image file.**
<img src="{{ asset('images/image_name.jpg') }}" alt="Image description">
**4 Replace image_name.jpg with the name of your image file.
5 Make sure that the URL generated by the asset function is correct. The URL should start with the base URL of your Laravel application, which is usually the root directory of your project.
That's it! Your image should now be displayed on your web page.**

Related

How to add a css file in laravel?

I want to apply margin-bottom on #createNewBook, I added a CSS file in laravel by using <link rel="stylesheet" href="/assets/css/style.css">. But it's not working. Can anyone tell me how to add a CSS file to my laravel project?
This is my HTML code in laravel:
This is CSS code:
This is my directory format:
And this is the output:
Put the assets folder in public then in the blade file use this syntax to load css
{{asset('assets/css/style.css')}}
You have to put your assets folder into the public folder because only the things in the public folder are accessible publicly.
And then in the blade.php file use the following syntax to load CSS.
<link rel="stylesheet" href="{{asset('assets/css/style.css')}}">

Laravel 5 css,js and image files are not loading

I am trying to load css, js and images files kept inside my public/css/assests folder. Link which i have been giving is
<link rel="stylesheet" href="/public/css/assets/js/jquery-ui/css/no-theme/jquery-ui-1.10.3.custom.min.css">
But when i open my page in browser it gives error that is
GET http://localhost:8000/public/css/assets/js/jquery-ui/css/no-theme/jquery-ui-1.10.3.custom.min.css net::ERR_ABORTED
Please tell me what to do to resolve the error.
you can use asset() to load css and js and images from public folders.asset will point to public folder
<link rel="stylesheet" href="{{asset('css/assets/js/jquery-ui/css/no-theme/jquery-ui-1.10.3.custom.min.css')}}">
asset()
asset() will generate a URL for an asset using the current scheme of the request (HTTP or HTTPS):
please use asset() function
<link rel="stylesheet" href="<?php echo asset('css/assets/js/jquery-ui/css/no-theme/jquery-ui-1.10.3.custom.min.css'); ?>">
asset() gives full url of your root directory
/ points to public folder by default, so remove /public
<link rel="stylesheet" href="/css/assets/js/jquery-ui/css/no-theme/jquery-ui-1.10.3.custom.min.css">

no output in laravel project when i am adding my style sheet

when i add my css file to laravel project it does not work
why this file make laravel project does not work
and when i remove it form the project it work correctly
I put the css ,images ,and js into public folder
and html into resources folder and use this to require the files
<link rel="stylesheet" href="{{Request::root()}}/webSite/style.css"/>
when i inspect element in browser there is no error
is that correct in css file ?
background-image: url(images/Overlay/1.jpg);
Use this instead
<link rel="stylesheet" href="{{asset('webSite/style.css')}}"/>
asset function returns the path of the public folder with parameter path appended

Laravel 5 Routing to CSS folder issue

I have the following route which loads the page but the css of the page doesn't loads.
Route::get('admins', function () {
return view('admins/index');
});
In the contrast the following route loads the same page but here I added index and the page loads correctly. but I also adds index with admins in the browser address bar.
Route::get('admins/index', function () {
return view('admins/index');
});
I am calling css files in the views like:
<link href="../assets/css/animate.min.css" rel="stylesheet" />
I searched for the solutions but didn't got anything.
For Laravel 4 & 5:
<link rel="stylesheet" href="{{ URL::asset('assets/css/animate.min.css') }}">
URL::asset will link to your project/public/ folder, so chuck your scripts in there.
Note: You'll need to be using blade templates to use this. All Blade templates should use the .blade.php extension.
i am using code like below for css and js :
<link rel="stylesheet" href="{{ asset('/') }}css/menu-style.css">
And css directory is in my "project/public" directory.

Using CSS in Laravel views?

I've just began learning Laravel, and can do the basics of a controller and routing.
My OS is Mac OS X Lion, and it's on a MAMP server.
My code from routes.php:
Route::get('/', function() {
return View::make('home.index');
});
Route::get('businesses', function() {
return View::make('businesses.index');
});
Route::get('testing', function() {
return View::make('testing.index');
});
Route::get('hello', function() {
return "<h3>Hello world!</H3>";
});
That works, the views display perfectly, ''however'' what I want to try and do is include CSS within the views, I tried adding in a link to a stylesheet within the directory but the page displayed it as the default browser font even though the css was in the HTML!
This is index.php from businesses within the views folder:
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
<p>Business is a varied term. My content here.
I tried using the Blade template engine in my other views folder (testing) to display CSS but again the CSS did not show despite it being in the testing folder!
How can I overcome this problem, and get better - as I'm slowly learning this framework.
Put your assets in the public folder; e.g.:
public/css
public/images
public/fonts
public/js
And then, to access them using Laravel, use:
{{ HTML::script('js/scrollTo.js'); }}
{{ HTML::style('css/css.css'); }}
Or:
{{ URL::asset('js/scrollTo.js'); }}
{{ URL::asset('css/css.css'); }}
This syntax will automatically generate the correct path (e.g., `public/js/scrollTo.js').
your css file belongs into the public folder or a subfolder of it.
f.e if you put your css in
public/css/common.css
you would use
HTML::style('css/common.css');
In your blade view...
Or you could also use the Asset class http://laravel.com/docs/views/assets...
You can also write a simple link tag as you normaly would and then on the href attr use:
<link rel="stylesheet" href="<?php echo asset('css/common.css')?>" type="text/css">
of course you need to put your css file under public/css
We can do this by the following way.
<link href="{{ asset('/css/style.css') }}" rel="stylesheet">
{{ HTML::style('css/style.css', array('media' => 'print')) }}
It will search the style file in the public folder of Laravel and then will render it.
Like Ahmad Sharif mentioned, you can link stylesheet over http
<link href="{{ asset('/css/style.css') }}" rel="stylesheet">
but if you are using https then the request will be blocked and a mixed content error will come, to use it over https use secure_asset like
<link href="{{ secure_asset('/css/style.css') }}" rel="stylesheet">
https://laravel.com/docs/5.1/helpers#method-secure-asset
Since Laravel 5 the HTML class is not included by default anymore.
If you're using Form or HTML helpers, you will see an error stating class 'Form' not found or class 'Html' not found. The Form and HTML helpers have been deprecated in Laravel 5.0; however, there are community-driven replacements such as those maintained by the Laravel Collective.
You can make use of the following line to include your CSS or JS files:
<link href="{{ URL::asset('css/base.css') }}" rel="stylesheet">
<link href="{{ URL::asset('js/project.js') }}" rel="script">
You can simply put all the files in its specified folder in public like
public/css
public/js
public/images
Then just call the files as in normal html like
<link href="css/file.css" rel="stylesheet" type="text/css">
It works just fine in any version of Laravel
Update for laravel 5.4 ----
All answers have have used the HTML class for laravel but I guess it has been depreciated now in laravel 5.4, so
Put your css and js files in public->css/js
And reference them in your html using
<link href="css/css.common.css" rel="stylesheet" >
To my opinion the best option to route to css & js use the following code:
<link rel="stylesheet" type="text/css" href="{{ URL::to('route/to/css') }}">
So if you have css file called main.css inside of css folder in public folder it should be the following:
<link rel="stylesheet" type="text/css" href="{{ URL::to('css/main.css') }}">
That is not possible bro, Laravel assumes everything is in public folder.
So my suggestion is:
Go to the public folder.
Create a folder, preferably named css.
Create the folder for the respective views to make things organized.
Put the respective css inside of those folders, that would be easier for you.
Or
If you really insist to put css inside of views folder, you could try creating Symlink (you're mac so it's ok, but for windows, this will only work for Vista, Server 2008 or greater) from your css folder directory to the public folder and you can use {{HTML::style('your_view_folder/myStyle.css')}} inside of your view files, here's a code for your convenience, in the code you posted, put these before the return View::make():
$css_file = 'myStyle.css';
$folder_name = 'your_view_folder';
$view_path = app_path() . '/views/' . $folder_name . '/' . $css_file;
$public_css_path = public_path() . '/' . $folder_name;
if(file_exists($public_css_path)) exec('rm -rf ' . $public_css_path);
exec('mkdir ' . $public_css_path);
exec('ln -s ' . $view_path .' ' . $public_css_path . '/' . $css_file);
If you really want to try doing your idea, try this:
<link rel="stylesheet" href="<?php echo app_path() . 'views/your_view_folder/myStyle.css'?>" type="text/css">
But it won't work even if the file directory is correct because Laravel won't do that for security purposes, Laravel loves you that much.
put your css File in public folder . (public/css/bootstrap-responsive.css)
and <link href="./css/bootstrap-responsive.css" rel="stylesheet">
Copy the css or js file that you want to include, to public folder or you may want to store those in public/css or public/js folders.
Eg. you are using style.css file from css folder in public directory then you can use
<link rel="stylesheet" href="{{ url() }}./css/style.css" type="text/css"/>
But in Laravel 5.2 you will have to use
<link rel="stylesheet" href="{{ url('/') }}./css/style.css" type="text/css"/>
and if you want to include javascript files from public/js folder, it's fairly simple too
<script src="{{ url() }}./js/jquery.min.js"></script>
and in Laravel 5.2 you wll have to use
<script src="{{ url('/') }}./js/jquery.min.js"></script>
the function url() is a laravel helper function which will generate fully qualified URL to given path.
Put them in public folder and call it in the view with something like href="{{ asset('public/css/style.css') }}". Note that the public should be included when you call the assets.
put your css in public folder, then
add this in you blade file
<link rel="stylesheet" type="text/css" href="{{ asset('mystyle.css') }}">
Use {!! in new laravel
{!! asset('js/app.min.js') !!}
<script type="text/javascript" src="{!! asset('js/app.min.js') !!}"></script>
For Laravel 5.4 and if you are using mix helper, use
<link href="{{ mix('/css/app.css') }}" rel="stylesheet">
<script src="{{ mix('/js/app.js') }}"></script>
For those who need to keep js/css out of public folder for whatever reasons, in modern Laravel you can use sub-views. Say your views structure is
views
view1.blade.php
view1-css.blade.php
view1-js1.blade.php
view1-js2.blade.php
in view1 add
#include('view1-css')
#include('view1-js1')
#include('view1-js2')
in views-js.blade.php files wrap your js code in <script> tag
in views-css.blade.php wrap your styles in <style> tag
That will tell Laravel, and your code editor, that those are in fact js and css files. You can do the same with additional HTML, SVGs and other stuff that is browser-renderable

Categories