I have a project in CodeIgnitor. I downloaded it from hosting server and try to run it on localhost. but strange, home page is not loading. I checked images, css and js were in there respective folders but I cannot access from localhost. as I copied and paste image url or js url in browser to run, it took me to google map url.
I'm not able to catch the problem, whether it is .htaccess or some thing else is preventing me to load images on localhost.
I think it can be 1 of these 3 things:
Config
HTML markup
Directory permission
Answers:
(config/config.php) Set a valid value to $config['base_url'] key.
Try first use 'pure' HTML to load resources. If it loads, then you are using the path wrong - fix it dynamically later.
I dont know if you are using unix like system or windows. Anyway directory permission can cause this kind of problem sometimes. To fix is you need to apply a permission according to your system.
I hope it works. Please comment if you are sure that is not one of this 3 issues.
Try to use base_url in image/file path for EX::
<img src="<?php echo base_url(); ?>assets/pages/img/logo.png">
<script src="<?php echo base_url(); ?>assets/pages/js/example.js"> </script>
You nedd to load URL helper in config file to use base_url
Related
I am new at web development and I want to upload a main.js scrip in my PHP file but it gives me this error
I used a script tag to upload the js file like this:-
<script type="text/javascript" src="../assets/js/main.js"></script>
This could be due to many things:
Check ad/script blocker
Check if the browser can load it from the view page source option
Try pasting it before all scripts call it could be due to some functions in previous scripts, I faced this issue before.
This might help.
I have been coding up a localhost, and I made the localhost by using of course a JavaScript file to do so, and I then made it reference an HTML file. However, I noticed that when I am using localhost to serve up the HTML file I get this error:
"GET http://localhost:3333/filetesting.js"
The filetesting.js is that js file, there are also other things I'm referencing too, like websites. I'm referencing it by using script tag src.
I looked at the network on developer tools of it and it says it's a 404 error not found. I'm trying to figure out how to reference my script tag src's without having localhost:3333 go before it.
When I run the HTML file without using the localhost, it works just fine when it comes to the script tag src's. If you do not entirely understand what I'm asking for, just ask.
Assuming that your script will always reside in the root level of your website, you can simply target it with the root-relative prefix /:
<script src="/filetesting.js"></script>
This will load your script from the root, regardless of the site the file is hosted on. For example, on http://localhost:3333/ it will load the file from http://localhost:3333/filetesting.js, and from http://localhost:3333/folder/, it will attempt to load the file from the same location.
If you move your files over to a proper website, it will still work the same way: www.example.com will look for the file at www.example.com/filetesting.js, and www.example.com/folder/ will look for the same file at www.example.com/filetesting.js.
Hope this helps! :)
On my site I have my resources folder outside of the root, for example:
/var/www/html/ is the root directory
/var/www/resources/
I currently have a config file that sets the location of the library so I can include it with php like so:
defined("LIBRARY_PATH")
or
define("LIBRARY_PATH", realpath(dirname(__FILE__) . '/library'));
which works perfectly when I use:
<?php include_once(LIBRARY_PATH . "/file.php"); ?>
but it doesn't work when trying to add Javascript files:
e.g.
<script src="../resources/library/js/test.js"></script>
links to 'www.website.com/resources/library/js/common.js'
or
<script src="<?php echo LIBRARY_PATH; ?>/js/test.js"></script>
links to 'www.website.com/var/www/resources/library/js/test.js'
neither of which work.
Any suggestions on how I can do this without having the js files in or above the root?
Your JavaScript files have to be accessible to the browser because they are executed by the browser and not by the server.
This requires that they have a URL.
Putting the files under the webroot is the standard way to give a static file a URL.
Alternatively, you could write a program (e.g. in PHP) that will read the file and then output it's content to the browser. This is more complicated and makes dealing with cache control headers more fiddly and is not recommended.
Assuming you understand what you're doing and security implications of that!..
You create the linkjs.php script that takes the relative path to the script (from some root dir, perhaps /var/www/resource/js) as a parameter, like:
<script src="/linkjs.php?p=test.js">
In your PHP script you resolve the full file path, check that it's indeed a file under the root dir (to protect against ../ in the parameter), that it's readable by you PHP user, read the content and output it into the response. Don't forget to set content type to text/javascript of course.
Ideally, you should also provide proper caching headers based on the source file modification time, but that is a topic in itself. See the guidelines in other SO questions about proper caching headers for dynamic content.
The upside is that you can do on-the-fly script minification/combining/wrapping/substitutions if you like/need.
I'm having troubles calling my external js files from my views php pages. The js files are saved in the "resources" folder in the root folder i.e "root/resources/scripts/myfile.js" just like the "root/application" and the "root/system" folder.
so in one of my php files in the views folder i am using this code:
<script type="text/javascript"
src="<?php echo base_url();?>resources/scripts/welcome.js">
and this php file is located in "root/application/views/welcome.php"
and still my page cannot link with the java script so i am stuck big time.
regards
k..
Try this:
<script src="<?= base_url('resources/scripts/myfile.js')?>"></script>
Looking at your question and the comments below your question, it seems you are using "resource" in one example and "resources" in another example.
Once fixed, view the source of the page (I use FireFox, as it makes the links clickable), search for "welcome.js". Once found, click on the link for that file. If you see javascript, it means the file is found, alternatively you will see a 404 error.
First of all check if the resource folder is available,
The java script file is available and the file naming is in the same small or capital case, and server has public permission of the file and folder.
by the way your code has missing end tag
</script>
I am doing this in order to have Facebook like button in my page:
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
And after that:
<fb:like href= "" layout="button_count" show_faces="false" width="450" font=""></fb:like>
This works well. But instead of having to connect to Facebook to get the all.js
file, I would like to have that content statically in my assets. So.. I tried getting the content of that file, and putting it in a js file that is loaded in the page..
However, the button is not loading when I do that. Am I missing something? If it's not possible to get the all.js, I believe I could cache that right?
The channel file is a file that contains this script directive. It is not the script itself. You need the channel file to help cross-domain communication in some browsers. Since channel file never changes, it is good thing to cache it right. The javascript, on the other hand, might change at some point (thing change, API evolves, etc), so you don't need to aggressively cache it. Let Facebook do it.