Php Laravel 5.7-未使用URL::asset加载CSS和JS

Php Laravel 5.7-未使用URL::asset加载CSS和JS,php,laravel,laravel-5.7,Php,Laravel,Laravel 5.7,我是新来的。我在本地系统上安装了Laravel5.7,并将js和css放入公用文件夹,但在浏览器上点击我的网站url时,该网站并没有加载任何css和js 场地结构: app bootstrap config database public -css -js -images resources -views -includes -layouts -pages routes tests vendor index.php server.php .env 注意:我已经剪

我是新来的。我在本地系统上安装了Laravel5.7,并将js和css放入公用文件夹,但在浏览器上点击我的网站url时,该网站并没有加载任何css和js

场地结构:

app
bootstrap
config
database
public
 -css
 -js
 -images
resources
 -views
    -includes
    -layouts
    -pages
routes
tests
vendor
index.php
server.php
.env
注意:我已经剪切了.htaccess和index.php文件,并将它们放在根目录下运行站点,而不在路径中使用public。

以下是我调用url的方式: CSS:

JS:

查看源代码时,url如下所示:

http://localhost/mysite/css/style.css
有人能帮我解决这个问题吗


提前感谢。

对于JAVASCRIPT:

<script type="text/javascript" src="{{ URL::asset('js/query-1.11.1.min.js') }}"></script>
<link href="{{ URL::asset('css/style.css') }}" rel="stylesheet" type="text/css" >

对于CSS:

<script type="text/javascript" src="{{ URL::asset('js/query-1.11.1.min.js') }}"></script>
<link href="{{ URL::asset('css/style.css') }}" rel="stylesheet" type="text/css" >


注意:如果您的目录结构如下:/public/css/style.css或/public/js/query-1.11.1.min.js

您有3种可能

  • 使用像这样的工具
  • 使用
  • 或者最简单的方法是,在项目中使用命令
    php-artisan-serve
    ,然后浏览 看

编辑:当剪切
时,我忘记了。htaccess
index.php
文件必须将公用文件夹作为路径。 试试这个:

css
{{ URL::asset('public/css/style.css') }}
js
{{ URL::asset('public/js/query-1.11.1.min.js') }}
asset()
helper将基本URL前置到您提供的路径

基本URL是index.php的位置(在本例中:)

如果不希望index.php位于/public内部,则需要在资产路径中使用public/in,如下所示:

asset("public/css/style.css")

对于js文件也是一样,我希望您能理解。

您已经直接将css和js放在了一起,所以您必须尝试这个assets
href=“{assets(''')}”
函数

<link href="{{ asset('css/invoice.css') }}" rel="stylesheet" type="text/css"/>

还有js

<script type="text/javascript" src="{{ asset('js/word.js') }}"></script>

在根文件夹上创建.htaccess 并写下:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^localhost$ [NC]
    RewriteRule ^(.*)$ public/$1 [L,NC] 
</IfModule>

重新启动发动机
RewriteCond%{HTTP_HOST}^localhost$[NC]
重写规则^(.*)$public/$1[L,NC]

尝试使用“{asset('css/custom.css')}}}@Ankit如果您仍处于开发模式,我看不出您为什么讨厌URL中的
public
?您可以在计算机上创建虚拟主机并开始编码。当你上线时,你可以将你的域名指向公用文件夹本身。所以,你永远不会在你的域URL中获得
public
。@vivek_23谢谢你的建议。现在我再次将.htaccess和index.php放入公共文件夹,现在一切正常。再次感谢,欢迎光临。现在,出于安全原因,请将除
public
文件夹之外的所有文件夹放在
public\u html
之外,并使用
$app
等的正确路径编辑
public/index.php
。我尝试了此操作,但无效。实际上,我从公用文件夹中删除了.htaccess和index.php,并将这些文件放在根目录下运行站点,而不使用public。您确实不应该从根目录下运行站点,这会暴露您的
.env
文件这将在本地开发中起作用,但当他将
public
从url@cbaconnier你能进一步解释一下吗?请。我们可以假设@Ankit浏览
localhost/mysite/public
,因为
index.php
也在公用文件夹中。在制作过程中,您希望浏览
example.com
而不是
example.com/public
,这就是为什么laravel提供了多种服务方式,而不必在url中公开
public
文件夹。看我的answer@cbaconnier这很好,我对生产服务器不太熟悉。但是,有一点是css和js文件的url有什么问题,因为我们在路由中定义的路由中没有公共关键字?您将域
example.com
指向您的文件夹
mysite/public
,index.php位于该文件夹中。除了
资产('public/css/…')
将生成url
example.com/public/css/…
,但由于您的域已指向
public
,它将抛出404,因为您的资产实际上位于地址
example.com/css/…