【问题标题】:Failed to load resource in LaravelLaravel 加载资源失败
【发布时间】:2016-05-17 16:42:50
【问题描述】:

我在 Laravel 中制作网页,但我被困在非常简单的事情上。我正在尝试加载驻留在公用文件夹中的外部 JS。公用文件夹的文件权限是 777 没关系。

我正在使用

{!! Html::script('js/jquery.js') !!}

在刀片模板的头部。这行代码使得:

<script src="http://devbud/js/jquery.js"></script>

这也可以。但它仍然不起作用。我的 jquery.js 在 public/js 文件夹中,也可以。

所以它应该工作,但它没有。可能是我的 .htaccess 文件有问题,看起来像这样:

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

.htaccess 有问题还是我应该去别处看看?

【问题讨论】:

  • 您确定要将脚本链接设为“devbud/js/jquery.js”吗?您不想要一个合适的域,例如 devbud.com?
  • 它是一个虚拟本地主机(devbud),当它上线时会有.com

标签: javascript php .htaccess


【解决方案1】:

config/app.php 中,将url 设置为包含public 目录:

'url' => 'http://devbud/public',

但是,这假设您的应用程序是从该目录运行的(也就是说,index.php 驻留在该目录中)。建议将该目录设为您的 DocumentRoot - Laravel 设计用于将其他文件和目录放置在 DocumentRoot 之上。

另外,如果您更喜欢从子目录运行,您需要将RewriteBase 添加到您的.htaccess 文件中,就在RewriteEngine On 下方:

RewriteBase /public/

【讨论】:

  • devbud 指向 wamp/www/devbud/public - index.php 驻留在此处(我正在使用 wamp)。我尝试了你的建议,没有运气。
  • 我认为您不需要为此使用 Html 外观。只需手动输入&lt;script src="/js/jquery.js"&gt;&lt;/script&gt;
猜你喜欢
  • 2023-03-31
  • 2019-07-16
  • 2018-06-04
  • 1970-01-01
  • 2012-07-24
  • 2018-01-15
  • 2013-02-26
  • 2019-05-28
  • 2016-06-24
相关资源
最近更新 更多